我尝试在控制台上以 root 身份并通过 ssh 登录时遇到“访问被拒绝”(是的,我知道应该禁用 root ssh 访问 - 我刚刚继承了这个框)。我可以作为对“ALL”具有 sudo 访问权限的非 root 用户登录,但是当sudo su -
我得到:
su: cannot open session: Permission denied
如果我使用我认为正确的密码运行“su”,我会收到“身份验证失败”。
环顾互联网,我可以看到很多人们无法“su - non-root-user ”的情况,但在那里有效的补救措施似乎都不适用于这里。/etc、/etc/pam.d 上的权限是 0755,而 /etc/pam.d/* 上的权限都是 0644,除了更宽松的符号链接。/etc/passwd 中的 root 的 shell 是 /bin/bash(为我的非 root 用户工作)。没有 /etc/nologin
这是一个相当老的 Centos 主机。
除非必须,否则我宁愿不要让盒子离线来修复它。还有什么可以阻止 root 登录 / su / sudo su ?
更新 主机并不像我想象的那么旧 - 它的 Centos 7.4
我可以通过运行获得root权限
sudo -u root /bin/bash
(但更传统的方法仍然失败并出现相同的错误)。
在尝试运行“su”时,会出现以下日志条目(但 su 向标准输出报告错误并退出)
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)
虽然@doneal24 非常正确地指出首先要查看的是日志,但由于此框是在本地记录,所以如果没有 root 权限,我就无法做到这一点!:(
但是当我确定我仍然可以使用
sudo -u root /bin/bash
我能够看到日志时,我仍然可以进入根目录....谷歌错误消息并发现 /etc/security/limits.conf 存在问题。删除对“root”的引用恢复了访问。