首页 > 其他分享 >su和sudo命令的用法与区别

su和sudo命令的用法与区别

时间:2023-02-24 10:04:50浏览次数:35  
标签:用户名 sudo 用户 su 用法 命令 root


              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仅仅是临时提权的作用,记住,是临时。

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

标签:用户名,sudo,用户,su,用法,命令,root
From: https://blog.51cto.com/u_15966109/6082652

相关文章