Kerberos、.k5login 和 sudo
**背景:**我正在使用 Debian 7 系統,該系統已與 LDAP+Kerberos 系統集成,使用
libnss-ldap
,libpam-krb5
和nscd
. 我已修改sudoers
為允許 LDAP 組有權sudo
並獲得超級使用者權限。因此,我可以作為 LDAP 組登錄來管理機器。這一切都很好,並且ssh
登錄適用於 LDAP 使用者。我只是
.k5login
在我的使用者帳戶的主目錄中試驗一個文件,Cosmic Ossifrage
. 在文件中,我列出了:cosmic_ossifrage@REALM.COM
這是一個有效的 Kerberos 身份。SSH 登錄,因為該使用者繼續正確使用
.k5login
文件。但是,有了這個
.k5login
文件在我的主目錄中,我不再能夠使用它sudo -i
來獲得超級使用者權限。這似乎沒有任何意義,因為 .k5login 在我的主目錄中,而不是在我的主目錄中root
,所以在我看來,root
使用者和sudo
命令都不應受到比sudoers
文件中存在的內容更進一步的限制。但是,有了
.k5login
上面的文件,它們既sudo -i
不能sudo su
工作也不能像以前那樣工作。一旦.k5login
文件被刪除,這個功能就恢復了,我又能恢復sudo
了。在日誌文件
/var/log/auth.log
中,此時報告的許多錯誤消息中有一條來自 sudo,說明:[pam:sudo] krb5_kuserok failed for user cosmic_ossifrage
我是否錯過了定義 a
.k5login
應該做什麼的基本內容?這是預期的行為,如果是,為什麼?
根據Mark 的 評論,該
.k5login
文件必須滿足以下要求:.k5login 文件每行必須包含一個主體,由使用者擁有,並且不能由組或其他人寫入(但必須由任何人讀取)。
根據 Kerberos原始碼中的註釋。
在這種情況下,
.k5login
除了使用者之外,任何人都無法讀取該文件Cosmic Ossifrage
。儲存使用者主目錄的 NFS 掛載也強制執行 root 壓縮,甚至禁止 root 使用者訪問。通過使文件世界可讀,sudo
返回到根功能。(標記社區 wiki,因為答案最初來自評論。)