解决Ubuntu20.04报错问题 sudo: /etc/sudoers is world writable
一次修改sudoers文件后发现sudo指令无法正常使用,提示报错记录一下自己解决这个报错的方法和相关知识。
出现这个报错的原因是因为sudoers文件的权限被修改了,不是只读状态。
通常我们修改sudoers 文件的时候会提示该文件无法修改,因为文件权限是只读的。vim编辑器会开启readonly选项保护文件不被修改。如果关闭readonly选项后(set noreadonly
),使用chmod对修改sudoers文件的权限,使其能够被修改,而此时的用户仍然为普通用户时,也就是使用了sudo chmod
来修改sudoers文件。这会导致sudo
指令无法使用(因为sudoers不是只读状态),要使得sudo
能够正常使用,就必须让sudoers文件重新变为只读状态。
这时候可以先获取root权限,修改sudoer文件为只读就可以解决问题(chmod 0440 /etc/sudoers
或chmod =r /etc/sudoers
)。
但最棘手的问题是此时已经无法使用sudo 指令来获取root权限,所以有以下解决方案获取root权限。
如果只读root密码的情况下:可以su root 切换到root用户。
如果不知道密码。
-
是可以使用
pkexec chmod 0440 /etc/sudoers
让该命令以root权限执行(必须知道当前用户的登录密码) -
可以进入grub重设root密码(具体可以参考这里)
其他参考:
https://www.cnblogs.com/mianbaoshu/p/9449095.html