笔者想到遇到这个问题的缘由有两个:shell
一、新安装的Ubuntu没有设置root密码vim
二、没有设置pam认证配置session
lokott@lokott:~$ sudo passwd root [sudo] lokott 的密码: 输入新的 UNIX 密码: 从新输入新的 UNIX 密码: passwd:已成功更新密码
前面的问题解决以后仍是没法登陆:ssh
lokott@lokott:~$ cd /etc/pam.d/ lokott@lokott:/etc/pam.d$ ls chfn common-auth cron gdm-launch-environment other runuser sudo chpasswd common-password cups gdm-password passwd runuser-l systemd-user chsh common-session gdm-autologin login polkit-1 sshd vmtoolsd common-account common-session-noninteractive gdm-fingerprint newusers ppp su lokott@lokott:/etc/pam.d$ sudo -i #切换root用户 root@lokott:~#
#修改两个文件的配置:gdm-autologin gdm-password其实就是加个注释 root@lokott:~# cd /etc/pam.d/ root@lokott:/etc/pam.d# vim gdm-autologin root@lokott:/etc/pam.d# vim gdm-password
以下图:ide
修改/root/.profile文件(root用户环境变量文件),重启系统使用root登陆code
这里解释一下该shell语句的含义吧:blog
tty -s&&mesg n || true
该语句涉及shell命令理解以及组合逻辑判断的理解it
首先tty -s表示:不显示任何信息,只回传状态代码。io
mesg n表示:不容许其余用户将信息直接显示在你的屏幕上。class
true不用说了吧,为真
tty -s&&mesg n该组合为真,后面不执行,为假则执行true
接下来登陆验证: