首页 > linux > 变换用户身份为root的方法su 与 sudo
2009八月17

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

在linux系统中,谁是真正的老大?root。谁的权限至高无上?root。那普通用户咋办?这不能做,那不能干?让咱去死吗?嘿嘿,不想当将军的士兵不是好士兵,同样不想使用root权限的账号是一个懒人,在linux系统中有两个命令可以使我们变成root,这两个命令就是susudo。下面我来为大家简单的介绍一下,简单的了解一下二者的同异处。

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命令

这个就不给出实例了,因为这个其实并不是今天的主角,不过还是有地方需要说明一下的。

  1. 如果只想使用root来操作系统,但是想继续使用原账号的环境参数,直接使用su即可
  2. PATH是比较麻烦的东西,如果可以,请将普通用户,经常要用到root权限的,把其PATH设置为root的PATH
  3. 如果想真正的切换身份为新的账号,请使用su -l或者换成root就是 su -l root 或者 su -
  4. 如果只是想用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]$

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/08/17/1374/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

17 Responses to “变换用户身份为root的方法su 与 sudo”

  1. #1 JiaCheng 回复 | 引用 Post:2009-08-17 23:49

    寂寞

    [回复]

  2. #2 beetea 回复 | 引用 Post:2009-08-18 00:37

    问一下linux的使用对编程有多重要?主要是linux哪些方面?我linux只会点皮毛 :oops:

    [回复]

  3. #3 simaopig 回复 | 引用 Post:2009-08-18 11:32

    @JiaCheng
    咋这么寂寞呢?

    [回复]

  4. #4 simaopig 回复 | 引用 Post:2009-08-18 11:33

    @beetea
    我也只会皮毛。。如果用PHP的话感觉用处还是有些的,毕竟常用的开发平台就是这个。如果是JAVA的话,就只按自己兴趣学一下就行了。

    [回复]

  5. #5 vi 回复 | 引用 Post:2009-08-18 15:08

    看着有点晕了。哈。是不是没睡午觉的原因。 :D

    [回复]

  6. #6 simaopig 回复 | 引用 Post:2009-08-18 15:16

    @vi
    呵呵。那就先去补一觉吧。呵。

    [回复]

  7. #7 bolo 回复 | 引用 Post:2009-08-18 15:17

    教Linux的小小子老师复课了

    [回复]

  8. #8 simaopig 回复 | 引用 Post:2009-08-18 15:21

    @bolo
    呵,前一段一直在写那个JavaScript的正则,才有时间。呵。

    [回复]

  9. #9 回复 | 引用 Post:2009-08-18 15:23

    好晕啊。。 :roll:

    [回复]

  10. #10 simaopig 回复 | 引用 Post:2009-08-18 15:27

    @虾
    总想在你的名字后面加个“米”字。哈。

    [回复]

  11. #11 JiaCheng 回复 | 引用 Post:2009-08-18 16:05

    @simaopig 都是看不懂的东西!

    [回复]

  12. #12 猪笨无罪 回复 | 引用 Post:2009-08-18 16:44

    经常用SUDO,但是没研究得这么深哈,受教了!

    [回复]

  13. #13 simaopig 回复 | 引用 Post:2009-08-18 18:10

    @JiaCheng
    呵呵。。下次我写跆拳道。呵。

    [回复]

  14. #14 JiaCheng 回复 | 引用 Post:2009-08-18 22:45

    @simaopig
    下次你直接比划比划跆拳道吧!呵呵

    [回复]

  15. #15 simaopig 回复 | 引用 Post:2009-08-18 23:21

    @JiaCheng
    这可不行,只有挨打的份。呵呵。

    [回复]

  16. #16 peichen 回复 | 引用 Post:2009-08-19 11:18

    大虾~~

    你用ubuntu么

    [回复]

  17. #17 simaopig 回复 | 引用 Post:2009-08-19 11:20

    @peichen
    呵,我在用fedora。呵呵。

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)