[英]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
的软件包名称。 并尝试命令是否适用于单个软件包。
编辑:如果setuid
或setgid
位不正确,则可以尝试更改命令的顺序,并在--setugids
之前使用--setperms
。 (在某些情况下, chown
重置setuid
或setgid
位;不知道这是否适用于rpm
命令。)
互联网上有一些来源建议在一个命令中结合使用--setugids
和--setperms
或使用选项-a
而不是像这样的循环
rpm -a --setperms
阅读文档。 (我没有可以测试命令的基于RPM的系统。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.