Linux為什麼我不能通過
為什麼我不能通過 su
成為 root?
為什麼不起作用,
su
但起作用sudo -i
?當我想通過 成為 root 時su
,系統不接受我的密碼,但通過sudo -i
它可以工作。su: Authentication failure
設置/更改root密碼:
sudo passwd root
然後你就可以執行
su
命令了。
簡短答案可在 sudoers 手冊頁中找到(鍵入
man sudoers
以查看完整頁面):Unlike su(1), when sudoers requires authentication, it validates the invoking user's credentials, not the target user's (or root's) credentials.
sudo
要求您的密碼也是如此,並且su
要求您輸入root密碼。長答案
su
表示更改使用者,如以該使用者身份啟動 shell。您可以指定哪個使用者,例如su someuser
. 然後會提示您輸入someuser
的密碼。如果不指定使用者,su
則預設為 root 使用者。因此,當您鍵入時su
,它要求輸入 root 密碼。
sudo
意味著,以另一個使用者身份執行命令,並且sudo -i
意味著,以另一個使用者身份執行登錄 shell。您可以指定哪個使用者,但如果不指定,則預設為 root。與其期望其他使用者的密碼,su
不如sudo
應用安全策略。預設的安全策略是檢查文件/etc/sudoers
。該文件的預設版本包括:# Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL
這意味著,如果使用者在
sudo
組中,它可以以任何使用者身份執行任何命令。如果sudo -i
對您有用,可能是因為您自己的帳戶在 sudo 組中。但在sudo
執行命令之前,它會再次詢問您的密碼——而不是 root 使用者的密碼。