sudo和su的区别


命令前加sudo执行和用真正的root用户执行有什么区别? - 知乎  https://www.zhihu.com/question/51746286    (推荐)

变换用户身份为root的方法su 与 sudo (转载) - - ITeye技术网站  http://xvshell.iteye.com/blog/1838093       


    总结: 

    1, sudo 使用的是当前用户的用户环境配置来执行root权限, su 使用的是root用户的环境配置来执行命令.

    2, sudo 使用的是当前用户的密码, su使用的是root用户的密码

    3, sudo su 表示使用当前用户配置(包括PATH路径, /home/YourName/下各种配置文件等) + 当前用户密码 去切换到root帐号, 之后的命令都将是root帐号执行, 直至exit或logout退出

    4, su 或 su root 表示使用root用户的环境配置(包括PATH路径, /home/root/下各种配置文件等) + root用户的密码 去切换到root帐号, 直至exit或logout退出

    5, sudo echo "123" 表示使用当前用户配置 + 当前用户密码 去临时使用root帐号来执行echo "123"命令, 执行完成之后, 将继续保持当前用户状态





在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会出现啥状况呢?

使用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这行后面加上如下内容:

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

退出新账号身份:

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值