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