chapter14:Linux帐号管理之(1)身份切换

   我们都是使用一般帐号登录系统的,但是如何让一般用户转变成root用户呢,有两种方法:

(1) su:这个命令要有root的密码。

(2) sudo:这个命令只要有自己的密码就可以了,但是要进行设置。

一。su

  可以进行任何身份切换。

su [-lm] [-c命令] [username]

有没有加上-区别很大。涉及到login-shell与nologin-shell的变量读取方法。

(1)不加-

chapter14:Linux帐号管理之(1)身份切换

可以看到,此时用户身份为root ,但是PATH是chuiyuan的,也就是说读取变量的设置方式为non-login shell,这种情况下很多变量都不会改变。特别是PATH,由于没有变成root的环境(/sbin,/usr/sbin),所以很多root使用的命令只能用绝对路径来执行。

(2)加-

chapter14:Linux帐号管理之(1)身份切换

此时,是完全变成了root。所以以后我们切换身份时应该使用这种方法。

(3)只执行一句root命令

su - -c

chapter14:Linux帐号管理之(1)身份切换

(4)切换到其它帐号

su -l username

使用的是login-shell的方式。

总结:

(1)要想完整的切换到新用户的环境,要使用 su - username / su -l username .才会同PATH/MAIL 等一起切换。

(2)使用root切换到任何用户不用输入密码。

从上面可以看出来,su到root时是要root的密码的,这不安全,所以有了sudo。

二。sudo

  相比于su,sudo的执行则只要自己的密码,甚至不用密码。只有在/etc/sudoers内设置的用户才可使用sudo,sudo默认只有root可以使用。所以其它帐号如果想用sudo,则先要用root去修改sudoer文件。

由于sudoers文件是有一定的规则的,如果修改错误会出问题,所以root使用visodu来修改,这样在离开visodu时,系统会去查看语法是否正确。

  这里暂只记自己用到的,以后可以再查阅其它的。

(1)单一用户可以执行root所有命令与sudoers文件语法

  实际上,visudo只是用vim读取出/etc/sudoers来进行修改,我们只要添加下面一行:

chapter14:Linux帐号管理之(1)身份切换

(2)有限制的命令操作

(3)sudo与su搭配的方式