當初密碼是 test
平常使用 sudo + 密碼 test 沒有問題
test@test:~$ sudo ls
[sudo] password for test:
docker-compose.yml snap text.txt
但使用 su root 時候輸入密碼 test 就會出現以下錯誤
test@test:~$ su root
Password:
su: Authentication failure
因為你沒弄搞 sudo
跟 su
的差別
sudo
是要求 root 的權限,這邊輸入密碼是再次確保是帳號的擁有者操作,不是某個人看到別人忘了登出跑來用的,所以輸入的是自己的密碼
su
是切換到別人的帳號,跟登入是一樣的,所以輸入的是要登入的那個帳號的密碼,比如 su root
那你要輸入的就是 root 的密碼,不是你自己的
另外 root 有權限直接切換成任何人的帳號,也不需要密碼,所以另一個回答中,用 sudo su root
是能輸入自己的密碼就切換成 root 的,這邊是先用自己的密碼通過 sudo
的驗證,轉成 root 後再用 root 的不用輸入密碼的特權用 su
切換帳號
另外 sudo
也有個參數 -s
,可以用 root 的身份執行你目前的 shell ,用法就像這樣:
$ sudo -s
如果是要用 root 執行 shell ,我自己是比較喜歡這樣