簡體   English   中英

sudo:/ usr / bin / sudo必須由uid 0擁有,並在chmod 755之后設置setuid位

[英]sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set after chmod 755

我試過的是這個: https : //stackoverflow.com/a/29903645/4983983

我執行了這個:

n=$(which node); \
n=${n%/bin/node}; \
chmod -R 755 $n/bin/*; \
sudo cp -r $n/{bin,lib,share} /usr/local

但是現在我無法執行例如sudo su命令,出現以下錯誤:

 sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set 

我不確定該如何重做?

編輯:關於@Bodo答案:

sudo rpm --setperms mkdir
sudo rpm --setugids mkdir
cd /opt
 mkdir test13121
mkdir: cannot create directory ‘test13121’: Permission denied

BUT:

sudo  chown root:root /usr/bin/mkdir && sudo chmod 4755 /usr/bin/mkdir
mkdir test912121

困難在於找出已更改文件的普通權限。

您可以嘗試根據程序包管理中的信息重置文件權限。

參見例如https://www.cyberciti.biz/tips/reset-rhel-centos-fedora-package-file-permission.html

來自此頁面的引用:

重置所有已安裝的RPM軟件包的權限

您需要使用rpm和shell的組合來執行循環命令,如下所示:

 for p in $(rpm -qa); do rpm --setperms $p; done for p in $(rpm -qa); do rpm --setugids $p; done 

我建議您完整閱讀鏈接的頁面,並首先嘗試使用單個軟件包。 我想您可以以某種方式要求rpm查找包含/usr/bin/sudo的軟件包名稱。 並嘗試命令是否適用於單個軟件包。

編輯:如果setuidsetgid位不正確,則可以嘗試更改命令的順序,並在--setugids之前使用--setperms (在某些情況下, chown重置setuidsetgid位;不知道這是否適用於rpm命令。)

互聯網上有一些來源建議在一個命令中結合使用--setugids--setperms或使用選項-a而不是像這樣的循環

rpm -a --setperms

閱讀文檔。 (我沒有可以測試命令的基於RPM的系統。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM