su和sudo命令实际工作中的作用

su是set user的简写,翻译成大白话就是 设定用户的意思。sudo命令也是一个组合命令,意为set user do,翻译成大白话就是 设定用户 ,操作某些事务。

su 这个命令使用比较简单,该条命令前面已经解释,基本功能就是切换用户。

切换用户有两种方式,

第一种,su 用户名,切换到root用户时候需要提供root密码验证,root切换到普通用户无需提供密码验证,此时环境变量仍然保留为切换前用户。

第二种,su - 用户名,这个需要注意,-后有一个空格,验证方式同第一种,只是环境变量随用户转化,比如a切换到b用户,环境变量也变为b用户的环境变量,仅此而已。

su命令说完了,该说说sudo这个命令的来历了。我们可以想到,Linux是多用户多权限控制多任务的系统,其中一个超级权限用户为root,剩下的为普通用户,超级用户想干什么就可以干什么,可以理解为当前系统的神。可以想象,如果一直使用root这个超级用户,如果操作有误,密码造成了泄露,或者误删了什么重要的只有root可操作的文件,那么系统是不安全的,因此有低权限用户临时提权的方法就可以了,提权的时候验证一下root的密码不就安全了吗?sudo命令就是这个方法。

sudo只用作提升普通用户权限到root用户,也就是说该命令只有权限修改的功能,和su这个命令切换用户是不同的,su是双向的,并且su是永久的,而sudo是临时的,命令执行完了,还是原来的用户和环境变量。

那么,如何使用sudo呢?三种常见的方法:

第一:usermod -G wheel 用户名 或者 usermod -g wheel 用户名    #超级组wheel,该组内的所有用户可以使用sudo命令,将需要提权的用户加入该组就可以使用sudo命令了。

第二:visudo命令,添加一行: %组名 ALL(ALL) ALL。  需要提权的用户加入该组即可: usermod -G 组名  用户名。

也就是说,不用默认的wheel组名了,自己定义一个组名。

第三:命令 visudo,添加 用户名    ALL=(ALL)       ALL 或者   用户名  ALL=NOPASSWD: ALL,然后保存即可。NOPASSWD:

可以免密码验证使用sudo命令。

不推荐直接给/etc/sudoers这个文件修改权限,那样不是安全的行为,强烈推荐使用visudo命令。

总结:
su 用户名和su - 用户名  是永久切换用户,加 - ,环境变量也跟着切换。切换时需要验证密码,低等切高等权限验证高等用户密码。

sudo 需要修改 /etc/sudoers文件,但为了安全一般使用visudo命令,或者将低权限用户加入wheel组内。sudo仅仅是临时提权的作用,记住,是临时。

当然,两个命令都有一些参数,可以配合使用,但实际用处不是很大,可以忽略。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值