Ubuntu 取消sudo密码

需求:在Ubuntu下装了翻墙代理goagent之后,为了goagent能够开机启动。因为goagent需要sudo权限,所以要去掉sudo密码。

要修改的文件位于/etc/sudoers,先备份:

$ sudo cp /etc/sudoers /etc/sudoers.old

然后查看是否有对sudoers文件的写权限,如下:

如果sudoers文件的属性为-r--r-----,表示只有root和root组具有读权限,没有写权限,也就是即使用root账户也不能修改sudoers。

顺便说一下“-r--r-----”的意思:

第一个如果是'd'表示这是一个文件夹目录(directory),如果是‘-’表示是一个文件,如果是‘l’表示是一个链接(link)。

后面的9个分为3组,每组有3个权限——读(r)、写(w)、执行(x)。

其中第一组表示文件/文件夹所有者(或者创建者)对该文件持有的权限;

第二组表示某一用户组(如root、admin)对该文件/文件夹持有的权限;

第三组表示其他人对该文件的持有权限。

回到之前,root没有sudoers文件的写权限,用如下命令添加(首先切换到root账户下):

# chmod +w /etc/sudoers

(chmod +w 表示添加写权限,同理chmod +x 表示添加执行权限, chmod -x 表示撤销可执行权限)

然后添加如下一行到sudoers中:(添加在最后一行才能生效,注释不算)。

yourname ALL=(ALL) NOPASSWD:ALL

重启生效。

如果在修改sudoers的过程中把sudoers搞坏了,然后sudo权限和root权限都不能用,可以用以下命令:

kexec bash

通过如上命令,可以进入root模式,然后恢复sudoers。前提是root账户没被禁用。

原文地址:https://www.cnblogs.com/duanguyuan/p/3525535.html