Fedora 32安装NFS后出现chown: invalid user: ‘nfsnobody’错误求助
嘿,我来帮你一步步搞定这两个问题——先解决nfsnobody用户不存在的错误,再配置普通用户无需sudo就能挂载NFS目录。
一、修复chown: invalid user: ‘nfsnobody’错误
首先得明确:Fedora 32的nfs-utils包默认不会自动创建nfsnobody用户。这和CentOS/RHEL这类发行版不一样,Fedora默认用系统自带的nobody用户来处理NFS的匿名访问,所以你有两个可选方案:
选项1:手动创建nfsnobody用户和组
如果坚持要用nfsnobody,执行这两条命令就能创建系统级的用户和组(这类用户不会用于交互式登录,完全符合NFS的使用场景):
sudo groupadd -r nfsnobody sudo useradd -r -g nfsnobody -s /sbin/nologin nfsnobody
创建完成后,再重新执行你的目录权限修改命令:
sudo chown -R nfsnobody:nfsnobody /home/dolphin/data/k8s/monitoring/infrastructure/jenkins
选项2:直接用系统默认的nobody用户(更省心)
不想手动创建用户的话,直接用Fedora默认的nobody就行。先修改目录权限:
sudo chown -R nobody:nobody /home/dolphin/data/k8s/monitoring/infrastructure/jenkins
然后调整/etc/exports的配置,明确指定匿名用户映射到nobody(nobody的UID/GID默认是65534,你可以用id nobody命令确认):
/home/dolphin/data/k8s/monitoring/infrastructure/jenkins *(rw,no_root_squash,all_squash,anonuid=65534,anongid=65534)
修改完exports后,重启NFS服务并重新导出配置:
sudo systemctl restart nfs-server.service sudo exportfs -r
二、配置普通用户无需sudo即可挂载
要让任意普通用户免sudo挂载这个NFS共享,最安全灵活的方式是修改/etc/fstab,具体步骤如下:
1. 添加fstab条目
编辑/etc/fstab文件,加入这一行:
192.168.31.2:/home/dolphin/data/k8s/monitoring/infrastructure/jenkins /mnt nfs defaults,_netdev,user 0 0
这里的关键参数是user——它允许普通用户挂载该文件系统;_netdev是告诉系统这是网络设备,要等网络就绪再尝试挂载,避免开机挂载失败。
2. 测试普通用户挂载
现在切换到普通用户,直接执行挂载命令就行:
mount /mnt
卸载的话,普通用户也能直接执行:
umount /mnt
替代方案:用sudoers配置(不推荐,除非必须)
如果你不想改fstab,也可以创建一个sudo规则让普通用户免密码执行挂载/卸载命令。先创建sudoers规则文件:
sudo visudo -f /etc/sudoers.d/nfs-mount
然后添加以下内容:
ALL ALL=(ALL) NOPASSWD: /usr/bin/mount -t nfs -o v3 192.168.31.2:/home/dolphin/data/k8s/monitoring/infrastructure/jenkins /mnt, /usr/bin/umount /mnt
保存后,普通用户就能用sudo mount ...和sudo umount ...而不用输密码。不过这个方案不如fstab灵活,优先推荐fstab的方式。
最后回答你的疑问:nfs-utils会自动创建nfsnobody吗?
在CentOS/RHEL这类发行版中,nfs-utils确实会自动创建nfsnobody用户,但Fedora 32的默认配置里不会——Fedora倾向于用系统通用的nobody来处理匿名NFS访问,减少多余的系统用户。所以你要么手动创建nfsnobody,要么改用nobody用户。
内容的提问来源于stack exchange,提问作者Dolphin




