linux中 su su -命令的区分

前言

在linux系统中,由于root的权限过大,一般情况都不使用它。只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令。
在工作中,普通用户可能不会拥有root权限,这时需要执行以下root 其它用户下的文件读写操作都会 报无权限。
这时我们可以使用方便的操作,su 命令,让你短暂的有root权限,用完后 再切换回本来用户。

sudo

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令;

格式:sudo -u USERNAME COMMAND

默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。

su

su为switch user,即切换用户的简写。

格式为两种:
su -l USERNAME(-l为login,即登陆的简写)
su USERNAME
如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命令即为:su -root或su -,su root 或su。
su USERNAME,与su - USERNAME的不同之处如下:
su - USERNAME切换用户后,同时切换到新用户的工作环境中。
su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录。

su -

su -,su -l或su --login 命令改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。用su -命令则默认转换成成root用户了。

而不带参数的“su命令”不会改变当前工作目录以及HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。

注意:su -使用root的密码,而sudo su使用用户密码

原文链接

原文地址:https://www.cnblogs.com/trimphNuan/p/12796784.html