技术解析

不懂就问 使用 Linux 时出现 root 无法登录的问题,但普通用户可以登录
0
2021-06-17 14:22:19
idczone

刚学不久 linux 。用的 centos7

root 用户登录会卡顿一下,然后重复登录。

情景再现:修改了普通用户的 .bashrc 和 source .bash-profile 后,所有账号无法登录(重复登录),然后进入了单用户模式,删除了刚刚修改的内容(期间使用过“mount –o remount,rw /”),然后普通用户就可以登录了。

问题: 1 、只有普通用户可以登录,root 用户无法登录,且登录时提示上次登录时间然后卡顿 1 分钟,循环登录; 2 、使用普通用户登录后,su 可以切换到 root 用户。但是输入密码后不会弹出[[email protected] xxxx]# ,而是有光标一直在闪烁。必须 Ctrl + C 后才能弹出[[email protected] xxxx]#

第一次发主题,如果不妥的地方,请指教。 有没有办法可以查看登录时的日志?报了什么错?


我表达的不清楚吗?还是........现在是不影响使用,但是这个问题我想康康......

系统的登录策略限制了 root 用户直接登录了吧?

检查一下 /etc/pam.d/login, 看是不是禁止 root 用户本地登录了

编辑 /etc/gdm/custom.conf 文件,具体如下所示:
在 daemon 选项中修改 AutomaticLoginEnable=true,AutomaticLogin=root 
如果 daemon 下为空则添加:
AutomaticLoginEnable=true
AutomaticLogin=root 
如:
[daemon] 
AutomaticLoginEnable=true
AutomaticLogin=root

/etc/ssh/sshd_config 中的 PermitRootLogin 吗?我已经设置为 yes 了。

不是,你看楼下的,在 pam 那里看一下,可能限制本地登录了,一般安装完成之后是不存在这个问题的,除非你瞎配置了什么东西。


/>auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth substack system-auth
auth include postlogin
account required pam_nologin.so
account include system-auth
password include system-auth
pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
session optional pam_console.so
pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include system-auth
session include postlogin
-session optional pam_ck_connector.so
session required /lib64/security/pam_limits.so
session required pam_limits.so
内容是这样的,我...........有点看不懂....搜的答案,emmm.....也看不太懂,没有找到详细的解释
是多了这一行吗?“auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so”

emmmmmm.....我这边好像没有 /etc/gdm 这个目录......


session required /lib64/security/pam_limits.so
session required pam_limits.so
估计是这里出问题了, 这个库正常吗, 看一下 /var/log/secure 的日志, 如果只是测试系统,没什么数据, 可以先注释这两行试试

哇偶,我刚发现有这个日志,准备贴出来就收到大佬的回复了 =w=。好像报了错
May 8 10:51:04 localdomain sshd[2462]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.101.21 user=root
May 8 10:51:04 localdomain sshd[2462]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
May 8 10:51:06 localdomain sshd[2462]: Failed password for root from 192.168.101.21 port 54908 ssh2
May 8 10:51:20 localdomain sshd[2462]: Accepted password for root from 192.168.101.21 port 54908 ssh2
May 8 10:51:20 localdomain sshd[2462]: pam_unix(sshd:session): session opened for user root by (uid=0)
May 8 10:51:46 localdomain sshd[2462]: error: Received disconnect from 192.168.101.21 port 54908:0:
May 8 10:51:46 localdomain sshd[2462]: Disconnected from 192.168.101.21 port 54908
May 8 10:51:46 localdomain sshd[2462]: pam_unix(sshd:session): session closed for user root

这两行我注释了还是一样的错......

你是 ssh 过去的,我以为你在本机操作, 看样子是你修改了 /etc/ssh/sshd_config 的 PermitRootLogin 没重启 ssh 服务吧

不用注释了,我以为你是在本机操作,改回来

本地登录也一样,登不上去......但是日志不同
May 8 11:00:54 localdomain login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
May 8 11:00:54 localdomain login: ROOT LOGIN ON tty1
May 8 11:01:17 localdomain login: pam_unix(login:session): session closed for user root

你先验证一下本机登录是否正常,再用 ssh 登录看。

注释掉,可能需要重启 sshd 才生效。 当前的 ssh 登录窗口可以不关,避免出错了,当前这个还可以管理。重新开一个 ssh 登录窗口。su 切换到 root 的时候也有问题, 要 ctrl+c 停止了才能进到 root 的 shell,这里似乎是 bash profile 的问题

不行
本机登录提示:
Last login: Fri May 8 10:35:36 2020 from 本机地址。然后卡顿一会儿后,重复登录
远程登录提示:
Last failed login: Fri May 8 11:04:47 CST 2020 from 本机地址 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Fri May 8 11:00:54 2020
Connection closing...Socket close.
Connection closed by foreign host.

不一样,本地是登陆验证通过的, 远程是直接被拒绝了, 我建议你重启一下操作, 因为可能你操作不当存在多种可能

我确实改动过 .bashrc 和 .bash_profile,现在注释了所有的改动,也还是有这个问题。改了.bashrc 是不是也影响到了.bash_profile ?现在我是两个文件全还原了.要不我

linux 主机已经重启了,本地登录不了

必须 Ctrl+C 后才会弹出提示符?
既然有提示符说明问题不在 pam or sshd
检查下 ~/.bashrc ~/.bash_profile /etc/profile.d 有没有什么东西卡住了
一般登陆后脚本卡住了就是这个现象

看一下 root 用户的 authorized_keys 文件,公钥前面有没有注释。
no-port-forwarding,no-agent-forwarding,no-X11-forwarding
如果有注释,把注释都删掉,只留公钥

可能是 login shell 和 non-login shell 这类的问题

ok 了,确实如此,我用同一个镜像在虚拟机上装了一遍,然后替换了 linux 主机上的 .bashrc 和 .bash_profile,可以登录了。谢谢~~~ 我一直不知道为什么会卡住,你这么一说我好像回忆起了什么.... 是我自己太笨了 TAT

谢谢各位大佬~~ 关于登录这里,跟着大佬们的指导和查询,摸索了一早上,对 linux 系统的快乐稍有体会了~~

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服