当前位置: 首页 > 科技观察

Linux中sudo、su、su命令的区别

时间:2023-03-20 15:53:46 科技观察

在Linux系统中,由于root权限太大,一般不用。只有在某些特殊情况下,才用于以root身份登录执行管理任务。一般使用su、sudo命令来临时使用root权限。前言su命令是一个切换用户的工具,怎么理解呢?比如我们以普通用户tom登录,但是要添加用户任务,执行useradd,tom用户是没有这个权限的,而这个权限恰好是root拥有的。有两种解决方法。一种是注销tom用户,重新以root用户登录,但这种方法并不完美;二是我们不需要注销tom用户,我们可以使用su切换到root来添加用户的工作,等待任务完成再退出root。我们可以看到,通过su切换当然是更好的方式;可以通过su切换用户,超级权限用户root切换到普通用户或虚拟用户不需要密码,但是普通用户切换到其他任何用户都需要密码验证。sudosudo是依赖于/etc/sudoers的权限管理机制,它定义了哪个用户被授权作为管理员执行什么样的管理命令;格式:sudo-uUSERNAMECOMMAND默认情况下,系统只有root用户可以执行sudo命令。root用户需要先使用visudo命令编辑sudo配置文件/etc/sudoers,然后才能授权其他普通用户执行sudo命令。susu是switchuser的缩写。有两种格式:su-lUSERNAME(-l是login,是login的缩写)suUSERNAME如果不指定USERNAME(用户名),默认是root,所以切换到root身份的命令是:su-root或su-,suroot或su。suUSERNAME和su-USERNAME的区别如下:su-USERNAME切换用户后,同时切换到新用户的工作环境。suUSERNAME切换用户后,原用户的工作目录和其他环境变量目录不会改变。当su-su-、su-l或su--login命令更改身份时,它也会更改工作目录,以及HOME、SHELL、USER、LOGNAME。此外,PATH变量也会更改。使用su-命令默认转换为root用户。不带参数的“su命令”不会改变当前工作目录和HOME、SHELL、USER、LOGNAME。它只有root权限。注意:su-使用root的密码,而sudosu使用用户的密码