ubuntu下sudo命令不再输入密码
ubuntu下普通用户是没有root权限,很多命令在使用时都需要使用命令sudo 'cmd',但系统需要user验证自己,即需要输入普通用户的密码。但普通用户是否有执行该cmd的权限,需要到系统文件/etc/sudoers进行匹配;如果user有该cmd的sudo权限,则可以执行该命令,但前提是需要验证自己;如果想让某user具有使用所有命令的权限,可以把该user或其所在的组加入到/etc/sudoers中,但需要执行命令:sudo visudo, 该命令会编辑/etc/sudoers。
和VIM的操作方式相同,加入如下:
client ALL=(ALL) ALL
表示:用户client 可以在任何“主机”上以任何用户的“身份”执行任何“命令”;
或%client ALL=(ALL) ALL
表示:用户组client内的所有用户可以在任何“主机”上以任何用户的“身份”执行任何“命令”;
如果只想用户client拥有使用root账户的权限,则:
client ALL=(root) ALL
或
client ALL= ALL
注意:
(1) 默认的可执行权限即是root;
(2) 如果想普通用户在执行任何命令时都不需要密码,则:client ALL=(ALL) NOPASSWD: ALL它表示:用户client可以在任何“主机”上以任何用户的“身份”执行任何“命令”,但不需要验证自己;
(3)如果想普通用户只拥有某几个命令执行时不需要密码,其他命令可以执行但需要密码,则:
client ALL=(ALL) ALL, NOPASSWD:/usr/bin/wireshark,/usr/sbin/tcpdump
表示:除了tcpdump,wireshark使用sudo执行时不需要验证外,其他的全部命令都需要验证。
操作如下:
在启动时进入安全模式,这时是用root登录的,执行:chmod 740 /etc/sudoers ,然后打开/etc/sudoers这个文件,把最后一行: %admin ALL=(ALL) 改为 %%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL 保存退出。
执行:chmod 0440 /etc/sudoers,重启ubuntu,验证sudo `cmd`是否需要密码吧。