
在 CentOS 7.5 里,如果不小心把 /etc 或 /usr 下的权限改乱,很容易导致 sudo 彻底不能用。典型报错如下:
sudo: error in /etc/sudo.conf, line 19 while loading plugin "sudoers_policy"
sudo: /usr/libexec/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins
如果权限继续更乱,还会出现:
sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
这类问题的根本原因都一样:
sudo 相关文件或 sudoers 文件被你 chmod 777-R 给破坏了权限。
下面是最常见也最快的修复方式。
一、先修复 sudo 插件文件权限
重点是把 sudo 插件恢复成 root 可写,其余用户只读:
chmod 644 /usr/libexec/sudo/sudoers.so
chmod 644 /usr/libexec/sudo/sudo_noexec.so
如果路径不同,以系统实际为准。
二、检查 sudoers 文件本身的权限
sudoers 的权限必须是 440,否则 sudo 会直接拒绝工作:
chmod 440 /etc/sudoers
另外确认目录权限:
chmod 755 /etc
chmod 750 /etc/sudoers.d
三、如果 sudoers 文件被误删,可以重新生成
有时候用户权限全乱后 /etc/sudoers 会损坏,这时可以用 root 新建:
visudo
恢复默认内容即可,例如:
Defaults requiretty
Defaults !visiblepw
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
保存后退出。
四、如果 root 也不能执行 chmod?
那就需要通过以下方式进入系统进行修复:
- 进入单用户模式
- 或通过服务器管理平台进入救援模式
- 又或者挂载磁盘后用另一台系统修权限
只要能进入 root 环境,恢复权限就能解决。
五、总结一下常见“错误操作”
很多人都会在服务器卡权限时一时着急,执行类似:
chmod 777 -R /etc
chmod 777 -R /
chmod 777 -R /usr
这种操作几乎等于“删库跑路”级别破坏,会导致:
- sudo 不能用
- sshd 配置失效
- 系统服务权限错乱
- 各类 systemd 单元无法启动
所以如果误操作了,不要继续重置权限,优先根据上方步骤恢复 sudo 和 sudoers。
仅限交流,拒绝商用!
修改权限下载:
隐藏内容,解锁需 付费 99元
付费解锁












![[源码分享] 创胜系列定制版本嘉年华房卡源代码【开发引擎Cocos Creator2.4.3】-](https://www.264rose.com/wp-content/uploads/2024/10/c4ca4238a0b9238-10.jpg)




