Kali-Linux

為什麼root不受pam約束

  • January 3, 2017

我在文件 /etc/pam.d/common-password 中有以下設置。

password        requisite                       pam_cracklib.so retry=3 lcredit=-1 ucredit=-1 dcredit=-1
password        [success=1 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512
password        requisite                       pam_deny.so
password        required                        pam_permit.so
password        optional        pam_ecryptfs.so

為什麼root可以為其他使用者設置弱密碼?

root@kali:~# LANG=C passwd kali
New password: 
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is a palindrome
Retype new password: 
passwd: password updated successfully

我沒有看到任何允許它的 pam 規則。我錯過了什麼嗎?

在 PAM 的較新(並向後移植到 RHEL 6)版本中,pam_cracklib您可以選擇添加 - enforce_for_root. 預設情況下這是關閉的。只需將其添加到該行,然後就可以了。

當然,沒有很多其他限制(例如 SELinux),root 可以繞過 PAM 並以另一種方式設置密碼(例如,直接寫入適當的文件),因此請考慮更多地讓自己保持誠實而不是比嚴格的限制。

為什麼它以這種方式工作,而不是期望堆棧來處理這種事情?我認為這只是一個靈活性問題,尤其是當 PAM 控制值只是簡單的必需/必要/足夠/可選時——您必須使用 root 將忽略的所有檢查pam_rootok的控制值,但是只有那些。由於作為 root 成功的選項是內置的,因此沒有必要(假設允許 root 跳過檢查是需要的,即使不是您的情況,它顯然也是如此)。sufficient``pam_cracklib

引用自:https://unix.stackexchange.com/questions/208579