筆者想到遇到這個問題的緣由有兩個: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
接下來登陸驗證: