linux root用户无法telnet登录
linux root用户无法telnet登录
正常情况下,linux设备是不建议使用root用户进行远程登录的。因为这不方便系统维护。当你真正需要root权限的时候可以使用su root命令切换至root,因为这样操作一旦出了问题是可以追溯到某个人的。但如果大家都用root登录那就很难追溯了。
抛开这些不谈,在使用telnet进行远程登录的时候相信好多朋友也遇见了和我一样的问题。
操作过程
1==》 使用telent登录之前要安装telent服务然后启动服务。
这一步我是正常进行的,没什么意外,小伙伴可以自己去百度安装这telnet服务的过程。我是使用yum安装的。
2==》 telnet远程登录
这一步出了问题,telnet设备ip后(默认23端口)进入了用户名密码输入界面,使用root登录一直提示Login incorrect。然后我就查看了一下登录日志。键入命令 tail /var/log/secure 查看日志如下:
日志中倒数的三行就是我上次登录失败的信息。看倒数第三行pam_securetty提示 access denied(拒绝访问):tty pts/3 is not secure(终端 pts/3 不安全)。
这时我们需要知道pam_securetty是啥,首先你要知道pam是啥,百度一下好多博主给了很详细的解释。登录系统也是要调用pam模块,而登录验证就在/etc/pam.d/login文件中配置。打开这个文件不出意外你会看到有一行中包含这个pam_securetty.so标记。然后使用man工具查看 man pam_securetty结果如下:
作用是对root用户的登录进行限制。
description第一行解释说:pam_securetty是一个pam模块,他要对root用户的登录进行校验,保证root登录的tty(终端)是安全的。那么什么样的终端才是安全的呢– –as defined by the listing in /etc/securetty(在这个文件里面列出来的才是安全的)。
所以结合上面的错误日志以及这段解释应该大概明白了,root登录失败的原因是哪个终端“pts/3”没有在/etc/securetty这个文件里列出。所以我们打开/etc/securetty新建一行按照原来的格式加入“pts/3”。
然后重启telnet服务。此时root用户就可以再远程使用telnet登录了。
当然login中有很多限制,有兴趣可以借用man工具和百度搜索查一查那些限制都是什么意思。