我在部署nfs的时候,共享了一个文件夹。为了让远程nfs客户端挂载这个文件夹的时候都有可读写权限,我须要把服务器上的用户uid、gid设置成nfs服务端文件夹同样的权限。不过由于以前新建的用户uid、gid都是系统自动生成的,几台服务器以前某个用户的uid、gid可能都不同,因此如今须要把这个uid、gid都设置成统一某个值。html
修改用户uid和组gid的命令分别是usermod和groupmod,思路很简单。先使用usermod修改用户的uid,而后使用groupmod修改组的gid,最后使用chown和chgrp命令修改原来用户文件和目录的属主属组。linux
例如测试用户foo和测试组foo。bash
foo old UID: 1005 foo new UID: 2005 foo old GID: 2000 foo new GID: 3000
命令:服务器
一、修改foo用户的uid
ide
# usermod -u 2005 foo
二、修改foo组的gid测试
# groupmod -g 3000 foo
三、foo用户的家目录下面的文件属主和属组会在一、2命令执行后自动修改为新的uid、gid对应的属主属组,可是其余文件目录须要手动修改。手动修改的命令也比较简单。ui
# find / -user 1005 -exec chown -h foo {} \; # find / -group 2000 -exec chgrp -h foo {} \;
这样用户和组的uid、gid就修改好了。能够用id命令看下是否修改的如咱们所愿。htm
# ls -l /home/foo/ # id -u foo # id -g foo # grep foo /etc/passwd # grep foo /etc/group
nfs常规方法是root有全部权限。blog
参考链接:ci
https://blog.nbhao.org/2401.html
http://www.cyberciti.biz/faq/linux-change-user-group-uid-gid-for-all-owned-files/