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
    评论
### 回答1: CentOS 8 是一种流行的 Linux 操作系统,而 sudo 命令su 命令是两种常用的权限管理工具。 sudo 命令superuser do)主要用于给普通用户提供以超级用户(root)权限执行命令的能力。通过 sudo 命令,管理员可以将特定命令的执行权限授予普通用户,而不需要将 root 密码分享给他们。这样做的好处是可以实现更精细的权限管理,限制用户执行某些特定命令的能力。在使用 sudo 命令时,用户需要输入自己的密码,而不是 root 密码。另外,sudo 还可以记录每次特权命令的使用日志,方便审计和故障排除。 相比之下,su 命令(switch user)更像是直接切换用户的工具。通过 su 命令,用户可以切换到其他用户(包括 root 用户)的身份,并进入新用户的环境。su 命令通常需要输入目标用户(比如 root)的密码才能成功切换身份。su 命令默认切换到 root 用户,但也可以指定其他用户。 区别总结如下: 1. sudo 命令可以将特定命令的执行权限授予普通用户,而 su 命令是直接切换用户身份。 2. sudo 需要用户输入自己的密码,su 需要用户输入目标用户的密码。 3. sudo 命令可以实现更细粒度的权限控制和审计功能,而 su 命令更加直接且全面。 综上所述,sudo 命令su 命令在权限管理和使用方式上有所不同,选用哪种方式取决于实际需求和安全考虑。 ### 回答2: CentOS 8 是一种常见的 Linux 操作系统,sudocommand 和 sucommand 都是用来切换用户的命令sudo 是“superuser do”的缩写,用于以超级用户身份执行命令。通过使用 sudo,普通用户可以暂时获取超级用户(也称为 root 用户)的权限,以执行需要特殊权限的任务。sudo 命令需要输入用户自己的密码来验证身份,然后可以执行特定的命令。使用 sudo 命令可以增加系统的安全性,因为只有临时的特定命令需要超级用户权限。 su是“switch user”的缩写,用于切换用户身份。通过使用 su,用户可以直接切换到其他用户的身份,包括超级用户。su 命令需要输入切换到的用户的密码,然后用户的身份将切换到目标用户身份下,并打开一个新的 shell 会话。在 su 模式下,用户获得的是完全的目标用户权限,可以执行目标用户所拥有的所有命令sudosu 在使用上有一些区别。sudo 仅需要用户自己的密码,而不是目标用户的密码。而 su 需要用户输入目标用户的密码。此外,sudo 执行的命令只有该用户有权限执行的命令,而 su 执行的命令和目标用户的权限没有区别。 总结:sudosu 命令都可以用于切换用户,sudo 是执行特定命令需要超级用户权限时的首选命令,而 su 则用于完全切换到其他用户的身份。这两个命令在使用方法和权限管理上有一些区别,用户需要根据具体的需求选择适合的命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值