如何摆脱 - sudo:/usr/lib/sudo/sudoers.so必须只能由所有者sudo写入:致命错误,无法加载插件

时间:2013-06-06 09:57:38

标签: apache2 cgi ubuntu-12.04 sudo sudoers

我正在尝试使用cgi(python)配置apache2。为此,我必须更改某些文件夹和文件的权限,但每次我尝试更改文件或文件夹的权限时,我都会收到sudo致命错误。

例如:

1

j@ubuntu:/etc/apache2$ ls

apache2.conf envvars magic mods-enabled sites-available

conf.d httpd.conf mods-available ports.conf sites-enabled



j@ubuntu:/etc/apache2$ sudo chmod 777 httpd.conf

sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner

sudo: fatal error, unable to load plugins

............................................... ....................................

2

j@ubuntu:/usr/lib/cgi-bin$ sudo /etc/init.d/apache2 restart

sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner

sudo: fatal error, unable to load plugins

............................................... ....................................

3

j @ ubuntu:/ usr / lib $ sudo chmod -R 777 / usr / lib / cgi-bin

sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner

sudo: fatal error, unable to load plugins

............................................... ....................................

注意:

j @ ubuntu:/ etc / apache2 $ ls -l /usr/lib/sudo/sudoers.so

-rwxrwxrwx 1 root root 177452 2012年1月31日/usr/lib/sudo/sudoers.so

任何帮助都将受到高度赞赏!

5 个答案:

答案 0 :(得分:3)

如果您的主机上安装了docker,则可以利用其在卷上的权限漏洞来解决此问题。

运行 docker run -it -v /usr/lib/sudo:/tmp ubuntu:xenial

在容器中,一旦成为容器的根用户,您就可以:

  • cd /tmp
  • chown root sudoers.sochmod 644 sudoers.so,具体取决于具体问题

这不是一个很干净的解决方案,但可以解决问题。

答案 1 :(得分:0)

您必须登录root shell才能解决此sudoers.so权限问题。如果您有root帐户登录,请直接登录root shell,否则搜索"如何启动到root shell"或"删除root shell提示符"。如果您使用Ubuntu,则可以点击此链接https://askubuntu.com/questions/92556/how-do-i-boot-into-a-root-shell。 进入root shell后,将文件/usr/lib/sudo/sudoers.so的权限更改为

#chmod 644 /usr/lib/sudo/sudoers.so

答案 2 :(得分:0)

我认为你不必做上述程序......

解决方案1:

你可以简单地做

pkexec chmod go-w /usr/lib/sudo/sudoers.so

现在就尝试疯狂的事情......

sudo ls

解决方案2:

如果pkexec失败,

按照上面的程序,由pranab提出,但如果它说,

不能以只读模式或类似的方式写入。

试试这个,

$ mount -o remount,rw /
$ chmod 644 /usr/lib/sudo/sudoers.so

你们都准备好了!

答案 3 :(得分:0)

请尝试以root用户身份登录,并将目录的文件权限更改为

chmod 700 /usr/lib/sudo/sudoers.so,它将解决您的问题。

对我有用!

答案 4 :(得分:0)

对于OSX,有diskutil命令来修复磁盘权限:

diskutil resetUserPermissions / `id -u`

这需要一段时间:( ... ...您可能首先尝试打开脚本编辑器,创建新脚本并执行:

do shell script "chown -R root /usr/local/libexec/sudo/sudoers.so" with administrator privileges

如果这不起作用,则维修权限应该可以解决问题。