Ldap
Autofs + NFS + LDAP sudo 問題
我的設置與Dan Bishop 的 Ubuntu 12.04 Ultimate Server Guide非常相似。
我實際上在我的 github上創建了一系列 ansible 腳本來自動化這個過程。
所以我在客戶端機器連接的機器上設置了 ldap+kerberos。我有一個執行 nfs 伺服器的 nas,它為域中的使用者提供 /home 目錄。你可以在 github 上看到我的完整配置減去我的環境特定變數,如密碼等。
一切似乎都在工作,除了一個問題。如果我以 domainadmin 使用者身份登錄機器,我可以使用 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)
我知道這裡發生了很多事情,可能很難幫助我,但任何建議都將不勝感激!
看起來您的 NFS 共享是在啟用 root_squash 的情況下導出的,因此 root 使用者實際上獲得了
nobody
嘗試對 NFS 掛載進行操作時的權限。在 NAS 導出中查找 root 或 root squash 選項並進行調整。