sudo: /etc/sudoers is mode 0777, should be 0440 单用户 sudo不用输入密码的方法

sudo权限问题考察一题  su -   sudo su -    sudo su - test

[root@localhost ~]# su - zzx   #root用户进行切换不需要输入密码

[zzx@localhost ~]$ su - zzy    #这时需要输入zzy的密码

[zzy@localhost ~]$ su - zzx   #输入zzx的密码才能由zzx切换到zzy

[zzx@localhost ~]$ su -   #zzx切换到root  输入root密码

[zzy@localhost ~]$ sudo su -zzx   

[sudo] password for zzy:           #输入zzy密码  提示如下  ,说明zzy没有sudo权限  需要visudo授权

zzy 不在 sudoers 文件中。此事将被报告。

切换到root进行visudo授权

[zzy@localhost ~]$ su -

[root@localhost ~]# visudo  #root行下添加

98 root ALL=(ALL) ALL
99 zzy ALL=(ALL) ALL

[zzy@localhost ~]$ sudo su - zzx   #此时zzy有了sudo权限
[sudo] password for zzy:               #输入zzy的密码就可以切换到zzx
上一次登录:六 4月 11 13:59:45 CST 2015pts/0 上
[zzx@localhost ~]$   #这时zzx没有sudo权限  要用sudo su - 切换到zzy 是不行的  只能用  su - zzy  用root权限进行切换

打开上网客户端、新立得,这些涉及到系统的都要输入密码,对于我们大多数人来说,用Linux无非是做桌面应用,对安全性没必要搞得跟服务器一些。下面是我的一个解决办法:


在启动时进入安全模式,这时是用root登录的,执行: (注:下面这些命令都是要加:sudo的,或者开一个窗口:sudo su - 切换到root界面来操作)

chmod 740 /etc/sudoers 

然后打开/etc/sudoers这个文件,把最后一行: 

%admin ALL=(ALL) 
改为 
%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL 

保存退出。 

执行: 
chmod 0440 /etc/sudoers   (注:这个地方千万要注意,一定要设置成044,而不能设置成777,如果是777的话,并且你还忘记了root的密码的话,之后就不能使用sudo了)

reboot your ubuntu.OK! 
 
 
单用户
 

不得不说,有时候手贱的把/etc/sudoers文件权限改了,是一件很蛋疼的事.因为此时你会发现无论做什么都会弹出一条讨厌的提示,说没有权限执行等等...

网上有介绍登入root用户,或者去grub的recovery mode选项去选择root模式进入,再去用chmod把/etc/sudoers的权限改回来.但是你可能从来没设置过root密码,或者你根本就不知道root密码是多少.或者即便进入了recovery mode选项去选择root模式,当执行chmod的时候却发现read-only file system.这时,同学们也许只能仰天长啸了...

下面的方法可谓终极解决之道(本人在ubuntu12.04版本亲测,其他版本也许不同).

1. 启动ubuntu的时候按下shift键,注意是一直按住,也是进入grub list栏;

2. 选择第二个recovery mode模式,注意,选择之后不是按回车(enter),而是按e键编辑引导命令;

3. 然后修改倒数第三行里面的“ro recovery nomodeset”改为"rw single init=/bin/bash",最下面有按键的提示.(注意:ro是只读模式read only,rw是读写模式read write);

4. 修改完之后按Ctrl-x或F10进入单用户模式(此时做什么操作都可以);

5. 输入“chmod 0440 /etc/sudoers”将/etc/sudoers的权限改回来(同时,这里可以设置root密码,输入“passwd root”,然后回车,输入密码,要两次.注意,密码不会出现***);

6. 重启,只能使用“ctrl+alt+delete”,其他的都不行.

 

 

把/etc/sudoers里面最后一行
%admin ALL=(ALL)
改为
%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL 

不得不说,有时候手贱的把/etc/sudoers文件权限改了,是一件很蛋疼的事.因为此时你会发现无论做什么都会弹出一条讨厌的提示,说没有权限执行等等...

网上有介绍登入root用户,或者去grub的recovery mode选项去选择root模式进入,再去用chmod把/etc/sudoers的权限改回来.但是你可能从来没设置过root密码,或者你根本就不知道root密码是多少.或者即便进入了recovery mode选项去选择root模式,当执行chmod的时候却发现read-only file system.这时,同学们也许只能仰天长啸了...

下面的方法可谓终极解决之道(本人在ubuntu12.04版本亲测,其他版本也许不同).

1. 启动ubuntu的时候按下shift键,注意是一直按住,也是进入grub list栏;

2. 选择第二个recovery mode模式,注意,选择之后不是按回车(enter),而是按e键编辑引导命令;

3. 然后修改倒数第三行里面的“ro recovery nomodeset”改为"rw single init=/bin/bash",最下面有按键的提示.(注意:ro是只读模式read only,rw是读写模式read write);

4. 修改完之后按Ctrl-x或F10进入单用户模式(此时做什么操作都可以);

5. 输入“chmod 0440 /etc/sudoers”将/etc/sudoers的权限改回来(同时,这里可以设置root密码,输入“passwd root”,然后回车,输入密码,要两次.注意,密码不会出现***);

6. 重启,只能使用“ctrl+alt+delete”,其他的都不行.

 

 

把/etc/sudoers里面最后一行
%admin ALL=(ALL)
改为
%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL