nfs挂载服务器,解决挂载后无法chown,无法chmod,无法修改、写文件,文件只读权限Read-only file
当服务器A上硬盘空间不够时,可以挂载其他服务器B的硬盘到当前服务器A上,作为A的文件系统保存数据。
方法:
一、在服务器B上,启动nfs功能:
1. 执行命令:sudo -s ,切换到root,
修改/etc/exports, 输入:
要挂载的硬盘路径(如/data1/baobao) 服务器ip (rw,sync,no_root_squash,all_squash,anonuid=1000,anongid=1000)
1000是用户id,即服务器B上,文件所属用户的id,例如Chief,可以在/etc/passwd中查看。
2. (1)重启nfs
sudo service nfs restart
或者 ubuntu 10.0 以上的版本取消了service nfs start,
service nfs-server restart (如果在用户root,不用sudo,用了反而错了)
我的理解apt-get,只有root有权限,其他用户,即使sudo apt-get也可能有问题,
(2)如果Unit nfs.service not found,
sudo -s ,切换到root,安装nfs:
source /etc/profile,因为公司服务器无法连接网络,/etc/profile中包含http,https的设置,执行这条命令,通过代理访问网络。
apt-get update
apt-get install nfs-kernel-server
二、在服务器A上:
在服务器A上,新建挂载点(新建一个文件夹):
sudo mkdir /156_data1
sudo mount 要挂载的服务器B的ip: 要挂载的服务器B上的硬盘路径(如/data1/baobao) 服务器A上挂载点的位置(如/156_data1)
如果需要取消挂载:
sudo umount 服务器A上的具体路径(如/156_data1)
三、遇到的问题:
背景介绍:我在服务器B上,增加了一个用户id:xiaoli,然后在要挂载的路径上新建文件夹baobao/,这时候文件夹baobao的所属用户是xiaoli,然后遇到了一系列如下问题:
1. 在服务器A是的baobao/路径,
(1)无法新建文件:
touch: cannot touch 'aa': Permission denied
(2)无法更改baobao的uid和grpid:
执行sudo chown xiaoli:xiaoli baobao -R
chown: changing permissions of 'jiangbowen/': Operation not permitted
(3)无法更改baobao的文件读写权限:
执行sudo chmod 777 baobao -R
chmod: changing permissions of 'jiangbowen/': Operation not permitted
2. 通过用户xiaoli登录服务器B,无法更改baobao/路径的文件:
vim保存退出时,出现问题:read-only文件,无法保存。
四、分析解决:
原因:
在服务器B的/etc/exports中,输入的命令:
要挂载的硬盘路径(如/data1/baobao) 服务器ip (rw,sync,no_root_squash,all_squash,anonuid=1000,anongid=1000)
其中,1000的用户id是Chief,表示要挂载的文件的所属用户。
如果将要挂载的文件baobao/所属用户改为xiaoli,导致:
(1)在服务器A中,文件为只读系统,无法新建、更改。
(2)在服务器B登录xiaoli,无法修改、保存baobao/的文件。
解决:
因为/etc/exports中记录的1000的所属用户是Chief,
所以,将baobao文件夹改为Chief所有,执行:chown Chief:Chief baobao -R
(1)在服务器B上,只有登录Chief用户,才可以修改baobao文件夹内的文件并保存。
(2)在服务器A上,不用执行chmod 777 baobao -R,任意用户都可以在挂载点,添加、修改、保存文件。
执行chmod 777 baobao -R也不会出现Operation not permitted的问题。
五、挂载云网盘的方法
sudo mount -t nfs -o nolock,nfsvers=3,vers=3 网盘ip 在A服务器上的文件夹名称
- 点赞
- 收藏
- 关注作者
评论(0)