我安装了最新版本的 Debian,但在使用以下命令时无法访问我自己的文件sudo
:
ls
-> 显示我的主目录中的文件sudo ls
-> 权限被拒绝
我的用户是 sudoers 组的一部分,并且在文件中具有以下条目/etc/sudoers
:
user1 ALL=(ALL:ALL) ALL
我之前使用Ubuntu的时候从来没有遇到过这个问题。
我的主目录位于 NFSv4 文件系统上。
答案1
该目录位于 NFS 安装的文件系统上。很可能,NFS 服务器已使用该root_squash
选项(大多数系统上的默认值)导出它,这意味着为了访问该文件系统,用户root
将映射到该nobody
用户,因此受到该目录的“其他人”权限的约束。
可能采取的行动:
不要用于
root
访问此目录。例如,如果您正在编写一个脚本来扫描用户的主目录,sudo
从 root 到每个用户依次检查他们的主目录:for user in `getent passwd | grep ':/home' | cut -d : -f1` do sudo -u "$user" \ "$process_directory" "`getent passwd $user | cut -d : -f6`" done
(我分割该
sudo
行以将选项与命令分开)- 更改目录的权限以允许用户读取和搜索
nobody
(例如chmod go+rx
)。您可能接受也可能不接受;您可能希望确保敏感文件(例如~/.ssh/
缓存目录)不可读。 更改服务器上的导出以删除该
root_squash
选项。在 Debian 上,这意味着编辑/etc/exports
以添加no_root_squash
到选项列表中:srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check,no_root_squash)
然后,这将允许
root
访问该文件系统上的所有文件,无论权限如何,就像文件系统是本地的一样。