Debian/Ubuntu系Linux设置sudo/su免输密码的方法

只要熟悉Linux操作系统的人都知道,Linux一般是不允许直接使用root用户进行日常操作的,因为,这是一种非常不安全的操作。但是,当你使用非root用户进行操作的时候,会发现一个非常烦人的机制:修改系统相关内容是必须使用sudo命令,而更烦人的是,每次使用sudo命令还非得输入密码!

blob.png

下面,笔者将教大家如何设置,使得使用sudo命令不用输入密码。

sudo介绍

sudo的含义是:Super user do,使用此命令,只起到一个调用root用户的作用,本次操作完成后,其作用就消失,如果现次使用需调用root用户的操作,必须再次输入sudo命令。

在进行sudo命令时,系统会验证你是否拥有调用root用户的权限,即验证root用户密码。用过Linux的人都知道,此时输入密码是没有任何显示的。

blob.png

可以看到,终端已经暂时使用root用户了。

sudo解决方法:

在Linux的/etc目录下,有一个sudoers的文件,里面保存了进行sudo的相关信息。

笔者系统的内容示例如下:

Defaultsenv_reset
Defaultsmail_badpass
Defaultssecure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root    ALL=(ALL:ALL) ALL
gyh    ALL=(ALL:ALL) ALL    #将用户gyh加入sudo用户组以使gyh有权限使用sudo命令

%sudo    ALL=(ALL:ALL) ALL

为了简洁,已把有关注释行去掉。

如果想使所有sudo用户都不用输入密码(当然笔者不推荐这样做),则将最所一行:

%sudo    ALL=(ALL:ALL) ALL

修改为

%sudo    ALL=(ALL:ALL) NOPASSWD:NOPASSWD ALL

然后保存即可,实时生效,不用注销或重启。

如果对某个指定用户不用输入密码,则在文件末尾添加:

user ALL=NOPASSWD:ALL    #user改不相应用户名

注意,此内容必须加在如下代码的后面,否则没有效果,因为其作用被下面的语句所覆盖了。

%sudo    ALL=(ALL:ALL) ALL

保存退出即可。

效果如下:

blob.png

可以看到,系统并没有要求输入密码,设置完成。

su解决方法:

blob.png

使用root权限创建whell用户组,命令如下:

sudo groupadd wheel

将相关用户加入whell用户组中

sudo usermod -G wheel user    #user改为对应用户名

修改su的配置文件,找到如下两行:

 auth       required   pam_wheel.so
 auth       sufficient pam_wheel.so trust

不一定在同一位置,将其前面的#号删除,使其生效。如果没有这两行,请自行添加。

查看效果:

blob.png

系统不现提示输入密码,设置完成 。

注意:此操作可能会影响到系统完全性,你谨慎操作!

0 条评论
发表一条评论