天天进步一点点:(12)su与sudo的学习

 

  帐户切换:susudo
 
1.       当普通用户经过su切换到root是,其shell环境仍是切换前普通用户的shell
[ila@www /]$ echo $PATH    
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/ila/bin #切换前用户的shell
[ila@www /]$ su
Password:
[root@www /]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/ila/bin #切换后
[root@www /]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin     #这个是直接root登陆的shell
不难看出切换后root并无获得真正的root的shell环境,最重要的/sbin和/root/bin没有获得。所以切换后有许多系统关键命令没法执行就不难理解了。
2.          若是想要切换后使用的是root的shell环境,那么加 -参数便可(或者- root)。同理,若是root帐户想要切换到其余用户的shell环境,使用-参数加上对应帐户的名字,不用输入密码。
3.          注意切换后提示符的变化,#是root拥有的提示符,$是普通用户拥有的提示符。
4.          若是只是想利用root的权限执行一个命令,切换成root后再执行比较麻烦,能够使用su - -c “cmdxxx”便可。
5.          关于sudo
由于使用su命令时老是要输入root密码,这样不安全。sudo命令不用输入root密码,但为了安全起见,须要输入本身的密码,这样就能够使用root的身份或其余身份去执行本身不能执行的命令。也就是说,这个命令不必定非要是root才能够执行的。例如,若是咱们普通用户能够sudo vi这个命令,那么普通用户就能够编辑任何文件,由于它是以root的身份去执行vi的。
命令为sudo –u xxx cmdxxx。
6.          可否执行sudo命令取决于/etc/sudoers这个文件的配置。默认系统只容许root能够使用。添加用户方式很简单。安全起见,编辑这个文件使用visudo命令。文件主要格式以下:
1.       test ALL=(ALL) ALL
这是彻底不作限制,默认状况下root就是这种设置。若是有多个用户的话能够经过对群组进行设置,而后用户加入群组就能够相应的拥有sudo权限。
2.       %TEST ALL=(root) ALL 也就是只要加入TEST群组就能够sudo到root,执行全部root的命令。固然这种设置是很危险的,还能够修改root的密码。
3.       通常状况下只会给出一个或者几个命令,不会使用ALL的方式,给出的命令必须使用绝对路径。另外须要注意的是,给出的命令能够是很精确的,也就是附上能够使用的选项,例如
testuser localhost=/sbin/shutdown –h now #那么用户只能使用这个命令,别的参数都不行
testuser localhost=/bin/vi /etc/sysconfig/network #那么sudu的使用只能用vi编辑network这个文件
相关文章
相关标签/搜索