背景:公司為安全考慮雕薪,對登陸服務器的權(quán)限進行了收歸们妥,所有人員必須使用普通用戶登錄服務器世落。如需使用root權(quán)限運維或定位問題魏铅,需執(zhí)行命令
sudu su
或sudo su -
進行權(quán)限切換昌犹。
系統(tǒng)配置說明
CentOS 6.2
遇到的情況
由于需要使用root權(quán)限,在使用普通用戶權(quán)限登陸機器后览芳,使用sudo su
命令切換到root用戶斜姥。
切換后發(fā)現(xiàn)之前給root用戶配置的環(huán)境變量均不起效了,仔細想了想應該是由于使用su命令切換用戶root用戶的環(huán)境變量沒有切換過來沧竟,所以這里對su
和su -
的區(qū)別進行簡單梳理铸敏,防止遺忘。
su和su-的區(qū)別
su
:將用戶角色由普通用戶切換至root悟泵,但保留普通用戶的shell環(huán)境
su -
:將用戶角色由普通用戶切換至root杈笔,并將shell環(huán)境切換為root的shell環(huán)境
兩者的區(qū)別:
- shell環(huán)境不同:
su
使用的是原來普通用戶的shell環(huán)境,su -
使用的是root用戶的shell環(huán)境 - 命令執(zhí)行后的工作目錄不同:
su
命令執(zhí)行后會將目錄切換至原普通用戶的工作目錄糕非,su -
命令執(zhí)行后會將目錄切換至root用戶的目錄
[test@Storm-Test ~]$ sudo su
[root@Storm-Test /data/home/test]# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
[root@Storm-Test /data/home/test]# pwd
/data/home/test
[root@Storm-Test /data/home/test]# exit
[test@Storm-Test ~]$ sudo su -
[root@Storm-Test ~]# echo $PATH
/root/zale/tools/:/usr/local/jdk1.7.0_25/bin:/usr/local/Zookeeper/bin:/usr/local/apache-maven-3.0.5/bin:/usr/local/apache-storm-0.9.2-incubating/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@Storm-Test ~]# pwd
/root
總結(jié)
這里在使用過程中su
和su -
除了環(huán)境變量和工作目錄不相同以外蒙具,其他內(nèi)容均保持一致球榆。
如需在su
的情況下刷新環(huán)境變量,執(zhí)行命令source /etc/profile
即可禁筏,效果如下持钉。
[test@Storm-Test ~]$ sudo su
[root@Storm-Test /data/home/test]# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
[root@Storm-Test /data/home/test]# source /etc/profile
[root@Storm-Test /data/home/test]# echo $PATH
/root/zale/tools/:/usr/local/jdk1.7.0_25/bin:/usr/local/Zookeeper/bin:/usr/local/apache-maven-3.0.5/bin:/usr/local/apache-storm-0.9.2-incubating/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin