/var/log/cups一直增长、 /usr权限过大导致sudo不能使用的解决方案

事情原因:学妹突然问为什么执行sudo的时候,出现了如下错误,问该如何解决。

sudo: error in /etc/sudo.conf, line 0 while loading plugin 'sudoers_policy'

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

sudo: fatal error, unable to load plugins


事情原因:

确实登录机子后执行sudo会出现上述问题,且同时观察到机子的硬盘空间被全部占满。占满硬盘空间的文件是/var/log/cups目录下的error_log文件。后经过百度、谷歌以及询问学妹对机子进行了什么操作,得出了如下结果链。首先是学妹没有权限管理意识,为了自己程序能够在系统目录下例如/usr/lib等读写文件,就索性一股脑将/usr/lib下文件的权限更改为了777,而/usr下权限一扩大,就导致sudo 无法使用,且/var/log/cups/error_log文件一直在写入数据直到耗尽硬盘空间。

事情解决:

首先需要更改sudo的权限,然后将/usr/lib下的权限改为755,最后删除error_log文件即可。

解决步骤:

一、如果你知道root用户的密码

1.1 进入root用户  ,并输入密码

su root

1.2 修改权限

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

#: chown -R root /usr/lib/sudo

1.3 退出root用户

#: exit

1.4 进入/usr/lib 目录,修改权限

~: sudo chmod -R 755 .

1.5 进入/var/log/cups目录,删除error_log文件

sudo rm error_log

二、如果你不知道root用户的密码,且之前没有设置root用户密码

2.1 设置root用户密码

2.1.1 开机时,按esc键,进入boot 选择界面,选择 Advanced 模式

2.1.2 从上往下找到第一个recovery mode,然后按e键编辑

2.1.3 移动光标,找到linux /boot/… ro recovery nomodeset所在的行

2.1.4 将“ro recovery nomodeset” 删掉,并加上“quiet splash rw init=/bin/bash”

2.1.5 按F10 进入黑框框界面,然后输入passwd设置root用户密码

注意如果此时你的键盘无效,不可用,有两种解决方案,

第一种是使用U口的键盘,不是USB口的键盘;

第二种是事先编写好设置密码的命令脚本,在init处初始化直接调用该命令脚本执行,完成密码的设置。

例如下/home/user/目录下编写一个命令脚本test,其中内容如下

#!/bin/bash

mount -no remount,rw /

passwd << 'EOF'

newpasswd

newpasswd

EOF

mount -no remount,ro /

reboot

接着修改test权限使得能够执行,输入 chmod +x test

然后重新从2.1.1开始,只不过在2.1.4中替换的内容为“quiet splash rw init=/home/user/test” 即可

2.2设置root密码成功之后,可以参照一中的步骤进行

三、如果你不知道root用户的密码,且之前有设置过root用户密码

GG,重装系统吧。。。

你可能感兴趣的:(/var/log/cups一直增长、 /usr权限过大导致sudo不能使用的解决方案)