sudo指令免输入密码
能否取消sudo密码
可以。
取消sudo密码是一个较为危险的操作,操作不当、后续使用不当可能引发不可逆的问题,请严格按照文档操作,并且文档最后附了几个出错后的抢救方法。
取消SUDO密码
以下操作都在终端中执行。完成后不要关闭这个终端窗口!
-
(建议操作)为root用户设定一个密码,用于失败后抢救系统。在终端中执行
sudo passwd
并输入自定义密码。 -
(建议操作)执行指令
su root
登录root用户,以免修改错误后无法挽回。 -
执行指令
visudo
,注意空格的位置。执行后会直接打开文本编辑器来编辑有关的配置文件。 -
接下来区分操作系统,请点击对应系统标签。
当退出时,编辑器提示图片里的信息,请注意,你添加的内容一定存在问题,务必进行修改。
-
输入e,回车,就会回到编辑器,以便于检查和修正内容。
-
输入x,回车,文件则不会保存,你可以回到系统中,从头操作
-
不能输入Q,Q是强制保存,退出后将无法使用sudo!
不要关闭刚才的终端,打开一个新的终端,执行sudo ls
等指令,如果不报错,则修改成功。如果报错了,则需要登录root用户后进行修复。修复方法见下。
sudo常见错误处理
由于网上的sudo免密方法五花八门,导致的问题也千奇百怪。这里将列举一些遇到过的错误。请根据sudo失败后返回的信息进行查看。
1. 语法错误、解析错误
很明显,你的添加的配置是拼写错误的。当然,也有可能是删掉了配置文件原来的内容让它变错了。报错信息会精确提供错误出现的行数,修正那一行即可。
如果之前按2.1设置了“root用户密码”,那么可以直接修改文件:
# 登录root用户,输入密码
su root
# 重新修改配置文件
visudo
# 按前面的步骤改正文件
# 使用exit退出root账户
# 尝试sudo指令是否继续报错
如果没有设置密码,则可是尝试pkexec su root
然后 visudo
。
如果没有按2.1设置root密码,那么请准备一个U盘并烧录一个LinuxPE或Linux安装镜像。
进入PE系统后,定位到电脑系统盘,etc目录,进入后在空白处点击“在此处打开终端”,使用sudo权限编辑sudoers 文件。
2. sudo可被任何人写
这个是/etc/sudoer文件权限错误导致的。
如果有root密码,那么su root
登陆后进行修改;
如果没有设置密码,则可是尝试pkexec su root
然后继续执行:
chmod 440 /etc/sudoers
如果没有按2.1设置root密码,那么请准备一个U盘并烧录一个LinuxPE或Linux安装镜像。进入PE系统后,定位到电脑系统盘,etc目录,进入后在空白处点击“在此处打开终端”,修改权限 sudo chmod 440 sudoers
(注意不要加/etc)
3. 属于用户ID 755,应为0
数字可能不同。这多半是修改的时候指令输错,导致/etc/sudoers和/etc/sudoers.d 的所有权发生了转变。
同样的,有root密码则su root
,没有则尝试pkexec su root
。然后修改他们的权限(根据报错内容确定修改对象。)
# 如果是sudoers文件报错
chown root:root /etc/sudoers
# 如果报错内容是sudoers.d文件夹
chown root:root -R /etc/sudoers.d
注意,上面两条指令都不能加sudo前缀否则依然失败报错。
如果本机无法修改,则使用PE、安装盘等进入电脑的系统盘分区下etc目录,右键–>在此处打开终端,并执行指令(根据报错内容选择修改对象)
# 如果是sudoers文件报错
sudo chown root:root sudoers
# 如果报错内容是sudoers.d文件夹
sudo chown root:root -R sudoers.d
# 这里必须带上sudo前缀,但不要/etc