1. 程式人生 > 其它 >報錯sudo must be owned by uid 0 and have the setuid bit set;無法使用sudo且無法登入root;wsl進入“恢復模式”;wsl 忘記密碼如何重置

報錯sudo must be owned by uid 0 and have the setuid bit set;無法使用sudo且無法登入root;wsl進入“恢復模式”;wsl 忘記密碼如何重置

引言

因為之前誤操作使用sudo chmod -R 777 /usr命令修改了usr檔案的所有者,導致在普通使用者sudo時報錯/usr/bin/sudo must be owned by uid 0 and have the setuid bit set

網上的解決方式是需要在root使用者下,執行以下幾條語句

chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo

但由於無法登入root,報錯 su: Authentication failure,查到的解決方式是需要 sudo passwd root,但現在遇到的問題就是沒法使用 sudo

解決方式是需要通過recovery mode進入root,然後再reboot

而 wsl 下的方式與linux有所不同,按下面的解決方法就能夠進入到root使用者

解決方式

執行bash並記下您的Linux使用者名稱(此名稱不必與Windows使用者名稱匹配),請參閱如何查詢我的使用者名稱?

如截圖所示,“@” 前面的就是使用者名稱 hxc2101

[email protected]_name:~$

如果它正在執行,請在Ubuntu上關閉Bash(否則下一個命令將失敗)。

在Windows中執行cmd,將預設使用者更改為root:

如果您在WSL的版本是“Ubuntu”,則命令如下:

ubuntu config --default-user root

如果您在WSL中使用Ubuntu 18.04,則命令應更改為ubuntu1804:

ubuntu1804 config --default-user root

現在Windows上的Ubuntu上的Bash無需密碼即可以root使用者身份登入:

使用passwdBash中的命令來更改使用者密碼(您要重置其密碼的使用者):

passwd your_username

在Windows命令提示符下將預設使用者更改回您的普通使用者

ubuntu config --default-user  your_username

如果您在WSL中使用Ubuntu 18.04,則命令已更改為ubuntu1804,因此

ubuntu1804 config --default-user your_username

參考:

在Windows中的Ubuntu / Linux Bash中重置密碼

解決普通使用者sudo時出現/usr/bin/sudo must be owned by uid 0 and have the setuid bit set