Kali-Linux
為什麼root不受pam約束
我在文件 /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