sudo,无法访问用户文件

sudo,无法访问用户文件

我安装了最新版本的 Debian,但在使用以下命令时无法访问我自己的文件sudo

  • ls-> 显示我的主目录中的文件
  • sudo ls-> 权限被拒绝

我的用户是 sudoers 组的一部分,并且在文件中具有以下条目/etc/sudoers

user1 ALL=(ALL:ALL) ALL

我之前使用Ubuntu的时候从来没有遇到过这个问题。

我的主目录位于 NFSv4 文件系统上。

答案1

该目录位于 NFS 安装的文件系统上。很可能,NFS 服务器已使用该root_squash选项(大多数系统上的默认值)导出它,这意味着为了访问该文件系统,用户root将映射到该nobody用户,因此受到该目录的“其他人”权限的约束。

可能采取的行动:

  1. 不要用于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行以将选项与命令分开)

  2. 更改目录的权限以允许用户读取和搜索nobody(例如chmod go+rx)。您可能接受也可能不接受;您可能希望确保敏感文件(例如~/.ssh/缓存目录)不可读。
  3. 更改服务器上的导出以删除该root_squash选项。在 Debian 上,这意味着编辑/etc/exports以添加no_root_squash到选项列表中:

    srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check,no_root_squash)
    

    然后,这将允许root访问该文件系统上的所有文件,无论权限如何,就像文件系统是本地的一样。

相关内容