您的位置:首页 > 其它

变换用户身份为root的方法su 与 sudo

2013-02-01 18:11 316 查看
su切换不同的用户身份:

使用su命令,我们可以切换不同的用户身份,相当于有多个面具,一会儿当好人,一会儿当坏人,呵。当su后面没有加上用户账号时,默认切换的就是root账号。并且使用这个命令最常见的情况就是让我们切换至root账号,来充当一会儿系统管理员。咱也当一把老大。
参数意义
-执行此操作表示该用户想戴上root的面具,且使用root的环境设置参数文件,如/root/.bash_profile等 等同于su -l root
-l后面接用户名,例如我想换成chongpig就写su -l chongpig,这个l>的作用就是说明一下我要使用新用户的身份所所有相关环境设置文件
-m 或者-p-m与-p是一样的,表示“使用当前环境设置,而不是重新调取新用户的设置文件”
-c用新身份仅执行一次命令,后面接的直接为shell命令
这个就不给出实例了,因为这个其实并不是今天的主角,不过还是有地方需要说明一下的。

如果只想使用root来操作系统,但是想继续使用原账号的环境参数,直接使用su即可
PATH是比较麻烦的东西,如果可以,请将普通用户,经常要用到root权限的,把其PATH设置为root的PATH
如果想真正的切换身份为新的账号,请使用su -l或者换成root就是 su -l root 或者 su -
如果只是想用root账号执行一个命令的话就直接用su -c “command”这样就好

列位可能要问了,要是我本身就是root账号,再执行su会出现啥状况呢?

# 什么也不好生,也没有让您输入密码

[root@xiaoxiaozi www]#
su

[root@xiaoxiaozi www]#

使用su账号想要切换成root就一定要知道root账号的密码,但是我们的目的只是让普通用户来借用root的权限,而不是把普通账号变为root,因为一旦root密码被别人知道这可是很危险的行为。所以我们有必要了解一下sudo这个命令。

sudo 只要输入自己的账号就可以拥有root权限:

听描述不错吧?但是事情不是这么简单的,这是因为您要想执行sudo是有要求的。让我们先来看一下sudo这个命令是如何工作的吧?

1. 当用户执行sudo时,Linux系统会去寻找/etc/sudoers文件,并且这是主动的,判断用户是否有执行sudo命令的权限

2. 如果用户有执行sudo的权限,让用户输入自己的密码来确认,这里比使用root的密码强多了,赞一下

3. 如果密码输入正确,开始执行sudo后面跟的shell命令

4. 如果要切换的身份相同, 和su命令一样,也不用输入密码

还得再强调一下,使用sudo命令,需要用户确认输入的是自己的密码,而不是root的密码,这可太帅了。呵呵。。
参数意义
-u后面可以接用户账号的名称,或者是UID,假如UID为500的时候用户>名为chongpig,我们可以用sudo -u #500 来作为切换到UID为500的用户等同于 sudo -u chongpig
默认情况下,用户没有使用sudo命令的权限,因为我们还没有设置/etc/sudoers文件。我们可以使用visudo命令来编辑此文件,切忌不要直接使用vim或者gredit来编辑,因为一旦输入有错误,可能会造成无法使用sudo的后果。

/etc/sudoers文件:

使用visodu命令后,打开的窗口与vi界面一致,如果想要为账号增加使用sudo命令的话,可以在 root ALL=(ALL) ALL这行后面加上如下内容:

# 用户账号 登录的主机 = (可以变换的身份) 可以执行的命令

username ALL=(ALL) ALL

刚才介绍的是用户身份的声明,下面还有一个特殊的用户组说明——wheel有如下内容:

## Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

## Same thing without a password

## 用户在使用sudo命令时不用输入密码,后面的ALL可以换为具体的shell命令

# %wheel ALL=(ALL) NOPASSWD: ALL

退出新账号身份:

这个命令是最简单的了,大家记一下哈:exit 嘿嘿,退出即可

[simaopig@xiaoxiaozi www]$ su

密码:

[root@xiaoxiaozi www]#
exit

exit

[simaopig@xiaoxiaozi www]$
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: