![Autofs + NFS + LDAP sudo 问题](https://linux22.com/image/616215/Autofs%20%2B%20NFS%20%2B%20LDAP%20sudo%20%E9%97%AE%E9%A2%98.png)
我有一个非常类似的设置Dan Bishop 的 Ubuntu 12.04 终极服务器指南。
我实际上创建了一系列 ansible 脚本来自动化这个过程我的 github。
因此,我在客户端连接的机器上设置了 ldap+kerberos。我有一个 nas,它运行一个 nfs 服务器,为域中的用户提供 /home 目录。您可以在 github 上看到我的完整配置,其中不包括我的环境特定变量,例如密码等。
一切似乎都正常,除了一个问题。如果我以域管理员用户身份登录计算机,我可以使用 sudo 运行更新 apt 缓存等命令,但我无法修改 /home 中的数据。
参见下文,请注意,ansible 和 jgrowl 两个用户都是域管理员:
ansible@ip-192-168-0-13:~$ pwd
/home/ansible
ansible@ip-192-168-0-13:~$ ls -l /home
total 12
drwxr-xr-x 8 ansible ansible 4096 Aug 12 14:07 ansible
drwxr-xr-x 7 jgrowl jgrowl 4096 Aug 12 14:08 jgrowl
ansible@ip-192-168-0-13:~$ mkdir test1
ansible@ip-192-168-0-13:~$ ls -l
total 4
drwxrwxr-x 2 ansible ansible 4096 Aug 12 14:06 test1
ansible@ip-192-168-0-13:~$ sudo mkdir test2
mkdir: cannot create directory `test2': Permission denied
ansible@ip-192-168-0-13:~$ sudo -u ansible mkdir test3
ansible@ip-192-168-0-13:~$ ls -l
total 8
drwxrwxr-x 2 ansible ansible 4096 Aug 12 14:06 test1
drwxr-xr-x 2 ansible ansible 4096 Aug 12 14:07 test3
ansible@ip-192-168-0-13:~$ sudo mkdir ~jgrowl/test4
mkdir: cannot create directory `/home/jgrowl/test4': Permission denied
ansible@ip-192-168-0-13:~$ sudo -u jgrowl mkdir ~jgrowl/test5
ansible@ip-192-168-0-13:~$ ls -l /home/jgrowl
total 16
drwxr-xr-x 2 jgrowl jgrowl 4096 Aug 12 14:08 test5
所以 sudo 只能在指定目录所属的用户时使用。这有意义吗?
以下是几个重要的文件:
nfs 服务器上 /etc/exports 的内容
/export *(rw,fsid=0,crossmnt,insecure,async,no_subtree_check,sec=krb5p:krb5i:krb5)
/export/home *(rw,insecure,async,no_subtree_check,sec=krb5p:krb5i:krb5)
我知道这里发生了很多事情,可能很难帮助我,但任何建议都会很感激!
答案1
看起来您的 NFS 共享是在启用 root_squash 的情况下导出的,因此 root 用户nobody
在尝试操作 NFS 挂载时实际上获得了权限。在您的 NAS 导出中查找 root 或 root squash 选项并进行调整。