我有centos7作为Windows 7上的虚拟机。除了root之外,我在那段时间创建了另一个用户“john”。一段时间后,我忘记了 root 密码,并将其重置为单用户提示符。从那时起,每当我以“john”身份登录时,我就无法执行此操作su -l root
。我明白了permission denied
。我以 root 身份登录并使用以下内容更改了 sudoer 文件:
root ALL=(ALL) ALL
admin ALL=/bin/su
Defaults: admin rootpw
john ALL=(ALL) ALL
然后我将 john 添加到wheel组并更新/etc/pam.d/su
为:
auth required pam_wheel.so use_uid
su -l john
另外,当我以“root”身份登录时,我无法执行此操作。感谢这里的任何帮助。
/var/log/secure
显示:
Mar 6 .... localhost su: PAM(other) no module name supplied
Mar 6 .....localhost su: PAM(other) illegal module type: @include
Mar 6 .....localhost su: PAM pam_parse: expecting return value: [...common-session]
曼尼
答案1
看来您在 PAM 中可能存在一些配置错误。检查 /etc/pam.d 以了解最近的更改。为了快速检查,您可以执行以下操作:
for i in /etc/pam.d/* ; do rpm -qf $i; done | sort -u | sed -e 's/-[0-9]*.*//' | while read p; do echo "Verrifing package $p"; rpm -V $p ; done
这基本上会打印所有拥有 /etc/pam.d 中文件的包。接下来我使用 sed 删除它们的版本标记,最后我使用 rpm -V 它将磁盘上的文件与 rpm 包中的文件进行比较。
如果检测到任何更改,它将以以下形式打印在屏幕上:
S.5....T. c /etc/pam.d/su-l
标志位的含义如下(man rpm
)
S 文件大小不同 M 模式不同(包括权限和文件类型) 5 摘要(以前的 MD5 总和)不同 D 设备主/次编号不匹配 L readLink(2) 路径不匹配 U 用户所有权不同 G组所有权不同 T mTime 不同 P能力不同
如果您发现有更改的文件,您可以检查它是否是您所做的更改以及是否有错误。您可能想要移动有问题的配置文件并重新安装拥有它的软件包yum reinstall pkg_name
。