FS服务会经常用于在网络上共享存储。
比如有3台机子A,B,C;他们都需要访问同一个目录,使用NFS,
只需要把图片都放在A上,然后A共享给B和C即可。
访问B和C时,是通过网络的方式访问A上的哪个目录的;
服务端配置NFS
服务端:192.168.123.128
客户端:192.168.123.129
安装:
yum install -y nfs-utils
修改配置文件(默认为空):
vim /etc/exports
内容如下:
/home/hfstestdir 192.168.123.129(rw,sync,all_squash,anonuid=1000,anongid=1000)
内容分三个部分:
第一部分:本地要共享出去的目录
第二部分:允许访问的主机(可以实一个IP,也可以是一个IP段)
第三部分:小括号中的一些权限设置:
rw:读写
ro:只读
sync:同步模式,表示内存中的数据实时写入磁盘
async:非同步模式,表示把内存中的数据定期写入磁盘
no_root_squash:加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。但是这样安全性低
root_squash:与no_root_squash选项对应,表示root用户对共享目录的权限不高,只有普通用户的权限,即限制了root.
all_squash:表示不管使用NFS的用户是谁,其身份都会被限定为一个普通用户身份。
anonuid/anongid:要和root_squash以级all_squash选项一同使用,用于指定使用NFS的用户被限定后的uid和gid,但前提是本机的/etc/password中存在相应的uid和gid.
rpm -qa nfs-utils rpcbind
创建共享目录:
mkdir /home/hfstestdir
启动nfs服务:
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
查看状态:
systemctl status rpcbind
重启:
systemctl restart rpcbind
开机自启动:
chkconfig rpcbind on chkconfig nfs on chkconfig --list rpcbind chkconfig --list nfs
客户端安装
yum install -y nfs-utils
查看服务端共享了哪些目录:
showmount -e 192.168.123.128
在客户端129挂在NFS
mount -t nfs 192.168.123.128:/home/hfstestdir /mnt/
查看挂在情况:
df -h
增加了一个/mnt分区。
进入/mnt目录下:
cd /mnt/
创建目录:
touch test.txt
提示权限不够;这是因为在服务端128上/home/hfstestdir目录权限不合适,挂在后相当于被限制为uid为1000的用户,
在128上修改/home/hfstestdir目录权限
chmod 777 /home/hfstestdir
然后回到客户端创建:
touch test.txt
命令exports
常用选项为:-a,-r,-u,和-v
-a:表示全部挂载或者卸载
-r:表示重新挂载
-u:表示卸载某一个目录
-v:表示显示共享的目录
该命令用于 修改了 /etc/exports文件后,
使用
exports -arv