一、su、su - 、sudo的区别
(1)su username
切换用户,如果不指定切换用户,则默认切换root用户,切换后不会初始化目标用户配置文件,即不会改变原用户的工作目录和用户的环境
[tomcat@localhost opt] $ su tengine
Passwd:
[tengine@localhost opt] $
(2)su - username
切换用户,如果不指定切换用户,则默认切换root用户,切换后会重新初始化目标用户配置文件,即会同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量,改变了用户的环境
[tomcat@localhost opt] $ su - tengine
Passwd:
Last login: Mon May 24 11:34:18 CST 2021 on pts/0
[tengine@localhost ~] $
(3)sudo
通过sudo可以授权给哪个用户可以以管理员的身份能够执行什么样的管理命令,并且不用知道root的密码(sudo时使用的是当前用户的密码,也可以设置成免密)
#sudo su -
#相当于使用root超级用户重新登录一次shell,只不过密码是使用的当前用户的密码。而且重要是,该命令会 重新加载/etc/profile文件以及/etc/bashrc文件等系统配置文件,并且还会重新加载root用户的$SHELL环境变量所对应的配置文件