掌握Linux NFS权限配置技巧 (linux nfs权限配置)

Linux NFS是一种基于Unix和Linux操作系统的网络文件系统,它能够在网络连接的计算机间分享文件和目录。在使用Linux NFS时,对于权限配置是非常重要的,因为正确的权限配置可以确保文件和目录的访问安全和可靠性。本文将介绍一些关于Linux NFS权限配置的技巧,帮助用户在使用Linux NFS时更加顺利。

一、Linux NFS基本原理

在介绍Linux NFS权限配置技巧之前,我们先来了解一下Linux NFS的基本原理。Linux NFS是基于RPC(Remote Procedure Call,远程过程调用)协议工作的,该协议将本地计算机上的请求发送到远程计算机上执行相应的程序或操作并返回结果。NFS则负责将计算机间的数据和文件交换,使得在多个计算机间共享数据和文件变得容易。

二、Linux NFS权限分类

Linux NFS在权限方面可以分为以下两类:

1. 文件系统级别权限:NFS支持使用Linux文件权限来控制对指定目录的访问权限,例如root权限、读写权限等等。

2. 导出节点级别权限:NFS支持使用exportfs命令结合各种选项来控制外部计算机的访问权限,例如只允许特定IP地址的计算机访问等等。

在实际使用中,我们需要对这两种权限进行相应的配置才能保证数据安全的同时实现共享。

三、权限配置技巧

下面介绍一些Linux NFS权限配置的技巧,帮助用户在实际使用时更加顺利。

1. 设置访问权限

设置访问权限是防止非法访问的一种重要措施,我们可以使用以下命令设置访问权限:

chmod [option] mode file/folder

在使用以上命令时,[option]可以是a(全部)、u(用户)、g(组)、o(其他人)中的任何一个,mode可以是r(读取)、w(写入)、x(执行)中的任何一个或它们的组合,并且file/folder表示需要设定的文件或目录。

例如,下面的命令将temp目录的所有文件和文件夹的读、写和执行权限授予root用户、root用户所属的组,其他人只有读取权限:

chmod 755 /temp

2. 导出节点配置

为了确保对特定节点的NFS请求访问,我们可以使用exportfs命令控制访问权限。该命令有以下语法:

exportfs [option] dir

在使用该命令时,[option]可以是ro(只读)、rw(读写)等,dir表示需要导出的目录名。

例如,下面的命令只允许特定IP地址的计算机访问test目录:

exportfs -o rw,no_root_squash 192.168.1.100:/test

3. 防火墙配置

防火墙能够帮助我们阻止非法的NFS请求,下面介绍如何在Linux系统中配置防火墙:

1. 首先需要安装iptables工具。我们可以使用以下命令安装iptables:

yum install iptables

2. 编辑防火墙规则:

iptables -A INPUT -p tcp –dport 2023 -s 192.168.1.0/24 -j ACCEPT

该命令表示允许来自192.168.1.0/24网络上的计算机通过TCP的端口2023连接到您的NFS服务器。

3. 输入以下命令以保存新规则:

iptables-save > /etc/sysconfig/iptables

四、

在使用Linux NFS时,正确的权限配置是非常重要的。本文介绍了Linux NFS权限配置的相关技巧,帮助用户在实际使用中更加顺利。希望本文对您有所帮助。

相关问题拓展阅读:

如何修改linux使其支持挂载nfs文件系统

给你我试过的,Linux主机与开发板NFS的挂载过程及设置,我用的ubantu系统,所以加了sudo

1、可以用终端命令安装:

#sudo apt-get install nfs-kernel-server nfs-common portmap

2.配置portmap(这是网上别人给出的)

#sudo gedit /etc/default/portmap//试了这个命令,好像没反应

或者

#sudo dpkg-reconfigure portmap //弹出的界面选择“否”,好像用于映射端口

其中还有一个创建NFS工作目录,如果之前没有相关目录的话,可以自己创建,有的话不需要了

3.配置挂载目录和权限

#sudo gedit /etc/exports//只需在最后加上一行配置选项就可以

我用的是jz2440开发板,配置(配置完后记得保存退出)为:

/work/nfs_root *(rw,sync,no_root_squash) //”/work/nfs_root与/work/nfs_root/first_fs”即为所创建的目录

/work/nfs_root/first_fs *(rw,sync,no_root_squash)

表示的是:(共享的目录)空格(主机名或者IP)(参数1,参数2,参数3)

上面的*代表所有的客户机都可以挂接此文件系统;rw代表客户机以读写许可来挂接它们的根文件猜薯系统;no_root_squash 选项允许客户机以主机上的root身份挂接根文件系统。有人说Ubuntu 9.10 下不可以用*,只能用IP并且还必须写得很全,测试了发现没有这回事的,即你可以用*也可以限制访问的IP段。

4.刷新重载一下exports文件

#sudo exportfs -r

5.重启NFS服务器

#sudo /etc/init.d/nfs-kernel-server restart

6.测试本地文件夹能否挂上 //也可以跳过这个步骤

#sudo mount -t nfs -o nolock 192.168.38.4:/work/nfs_root/first_fs /mnt //成功挂载

此处注意挂载的文件夹应该具有相应被访问的权限,可以找到该文件夹通过其属性修改和设置

用下面的命令可以查看挂载情况

#df

用下面命令可以查看挂载了的内容

#ls /mnt

以上相应文件夹和IP等应和你实际使用的做相应修改。族茄

7.挂载开发板

直接通过开发板IP挂载

#mount -t nfs -o nolock 192.168.38.4:/work/nfs_root/first_fs /mnt //把网线连接到路由器后,成功挂载

#ls /mnt 可以看到 /work/nfs_root/兆兆察first_drv目录下的内容

#unmount /mnt //卸载

LINUX怎样安装和使用NFS服务

举例,有台机器叫AAA,想把自己机器根下的一个叫abc的目录极其里面的所有文件都共享给一台叫BBB的机器。

在这里AAA就可看成是服务器,BBB为客户端,方法如下:

(在AAA上先配置)

1.

vi /etc/唤敬友exports

(用vi编辑器打开共享资源,在里面填写共享稿绝的属性,linux下nfs的共享资源路径为etc下的exports)

打开编辑器后,里面可能什么都没有,需要自己填写,然后保存即可,在这里填写

2.

/abc BBB(ro)

之后按Esc停止和槐文字录入,然后按Shift+;键,在出来的冒号后输入wq,表示保存退出!

(这个的格式是这样的:先给出要共享的路径,然后空格,后面写共享给谁,可以是IP地址或主机名。再后面的括号里表示以什么方式来共享,ro是客户端只能读,如果想让客户端可以改,可设为rw,即可读写)

LINUX NFS安装和使用,具体步骤如下:

1 安装

需要安装 portmap和nfs-utils这两个包,下载rpm包后用rpm安装或者直接用yum安装都可以。

rpm -ivh portmap-4.0-65.2.2.1.i386.rpm

rpm -ivh nfs-utils-1.0.9-50.el5.i386.rpm

2 配置

配置文件是/etc/exports,如果不存在需要自己创建。

/etc/exports文件内容格式:

NFS主要的选项有3类:

A 访问权限选项

设置输出目录只读:ro

设置输出目录读写:rw

B 用户映射选项

all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash:与all_squash相反(默认设置);

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash相反;

anonuid=:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=);

anongid=:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=);

C 其它选项

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操好早作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

例如,我们在namenode1机器上配置做如下配置

/home/dfs/nfs_share_edits/ namenode2(rw)

这个配置是把namenode1上的/home/dfs/nfs_share_edits目录设置成共享,可以给namenode2来访问,访问权限是可读写。

3 启动

sudo service portmap start

sudo service nfs start

查询状态

service portmap status

service nfs status

停止服务

service nfs stop

service portmap stop

4 客户端挂载

命令格式旁袜衫

mount NFS服务器IP/域名:共享目录本地挂载运腔目录

例如,在namenode2机器上运行mount命令挂载namenode1的NFS共享目录

mkdir /home/dfs/nfs_share_edits

sudo mountnamenode1:/home/dfs/nfs_share_edits /home/dfs/nfs_share_edits

这是把namenode2把namenode1的NFS共享目录挂载到本地,这样就可以访问远程的共享目录了,挂载前需要先创建本地的挂载目录。

挂载之后,可以用mount命令查看挂载状态

sudo mount | grep -i nfs

卸载命令

sudo umount namenode1:/home/dfs/nfs_share_edits

5 相关的守护进程

nfsd

它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;

mountd

它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。

portmap

主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

6 相关的命令

#查看配置

exportfs

#默认查看共享的服务

showmount -e

#查看已经与客户端连接上的目录信息

showmount -a

目前好像是不可以的,识别不了的

基于linux平台安装配置实现nfs服务为什么主机上显示无网络访问权

FS服务器的配置相对比较简单,只需要在相应的配置文件中进行设置,然后启动NFS服务器即可。

NFS的常用目录

/etc/exportsNFS服务的主要配置文件

/usr/in/exportfs NFS服务的管理命令

/usr/in/showmount客户端的查看命令

/var/lib/nfs/etab记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab记录曾经登录过的客户端信息

NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。

/etc/exports文件内容格式:

a. 输出目录:

输出目录是指NFS系统中需要共享给客户机使用的目录;

b. 客户端:

客户端是指网络中可以访问这个NFS输出目录的计算机

客户端常用的指定方式

指定ip地址的主机:192.168.0.200

指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0

指定域名的主机:david.bart.cn

指定域中的所有主机:*.bart.cn

所有主机:*

c. 选项:

选项用来设置输出目录的访问权限、用户映射等。

NFS主要有3类选项:

访问权限选项

设置输出目录只读:ro

设置输出目录读写:rw

用户映射选项

all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash:与all_squash取反(默认设置);

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash取反;

anonuid=:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=);

anongid=:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=);

其它选项

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认帆滚设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的态敬余一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

关于linux nfs权限配置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 掌握Linux NFS权限配置技巧 (linux nfs权限配置)