![修改/etc/pam.d/common-password后切换到root用户总是失败](https://linux22.com/image/151056/%E4%BF%AE%E6%94%B9%2Fetc%2Fpam.d%2Fcommon-password%E5%90%8E%E5%88%87%E6%8D%A2%E5%88%B0root%E7%94%A8%E6%88%B7%E6%80%BB%E6%98%AF%E5%A4%B1%E8%B4%A5.png)
我使用的是ubuntu 18.04。为了加强我的密码策略,我修改/etc/pam.d/common-password
如下:
# here are the per-package modules (the "Primary" block)
#password requisite pam_cracklib.so retry=3 minlen=8 difok=3
password requisite pam_cracklib.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1
password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 remember=15
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password required pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config
起初,当我尝试使用 root 登录时,sudo -s
根本没有问题,但是当我尝试使用 root 登录sudo -s
并输入密码时,我总是得到抱歉,请再试一次。
答案1
PAM配置中的几password
行才生效当您尝试更改密码时。因此,您的/etc/pam.d/common-password
修改极不可能成为您无法使用 切换到 root 的因素sudo
。
auth
如果您对以关键字、account
或开头的 PAM 配置行进行了任何更改session
,那么您的更改可能会导致sudo
失败。
这些auth
行告诉系统应如何验证尝试登录的用户的身份。 (“我怎么知道是你?”)
这些account
行用于确定在成功通过身份验证后是否允许您进入:您是否有登录时间限制?每个用户连续登录的最大次数可能有限制吗?您的帐户仅限本地登录吗?管理员是否使用/etc/nologin
文件阻止了常规用户登录(可能是为了完成一些主要操作系统升级或磁盘空间重组)?
通过这些检查后,这些session
行定义了系统设置会话所需执行的基本操作:例如应用ulimit
限制、设置一组基本的环境变量、将会话记录到文件utmp
、可能授予您访问权限等。某些硬件设备仅在您本地登录时才可用。