我尝试在控制台上通过 ssh 以 root 身份登录时遇到“访问被拒绝”的情况(是的,我知道应该禁用 root ssh 访问 - 我刚刚继承了这个框)。我可以以对“ALL”具有 sudo 访问权限的非 root 用户身份登录,但是当我sudo su -
得到:
su: cannot open session: Permission denied
如果我使用我认为正确的密码运行“su”,则会收到“身份验证失败”。
环顾互联网,我可以看到很多人们无法“苏-非root用户“但是在那里有效的补救措施似乎都不适用于这里。/etc、/etc/pam.d 的权限是 0755,而 /etc/pam.d/* 的权限都是 0644,除了更宽松的符号链接之外。Root 的/etc/passwd 中的 shell 是 /bin/bash (适用于我的非 root 用户)没有 /etc/nologin。
这是一台相当老旧的 Centos 主机。
除非迫不得已,否则我不想让盒子离线来修复它。还有什么可能阻止 root 登录 / su / sudo su ?
更新 主机并没有我想象的那么老——它是 Centos 7.4
我可以通过运行获得root权限
sudo -u root /bin/bash
(但更传统的方法仍然失败并出现相同的错误)。
尝试运行“su”时,会出现以下日志条目(但 su 将错误报告到 stdout 并退出)
May 17 15:25:06 myhost su: pam_limits(su:session): Could not set limit for 'nofile': Operation not permitted
May 17 15:25:06 myhost su: pam_unix(su:session): session opened for user root by symcbean(uid=0)
答案1
虽然 @doneal24 非常正确地指出,首先要查看的地方是在日志中,但由于此框是在本地记录的,因此如果没有 root 权限,我就无法做到这一点! :(
但是当我确定我仍然可以使用 root 权限时,sudo -u root /bin/bash
我能够看到日志....google 错误消息,发现 /etc/security/limits.conf 存在问题。
删除对“root”的引用恢复了访问权限。