• dushu.tw 读书网、小说免费阅读网站

Linux下su与su -命令的区别

软件 britneynord34 54次浏览 已收录 0个评论 扫描二维码

susu -都是用来切换用户命令简单说它们之间的区别就是:su -切换的干净彻底,而su
切换用户却拖泥带水。

su

su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

su –

su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~环境变量
即刻切换到指定目录的环境变量。

测试环境

测试环境是CentOS6.9_64位,系统中有两个用户linuxidc和root

oldboy的环境变量和家目录如下

[linuxidc@linuxidc~]$ echo ~
/home/linuxidc
[oldboy@linuxidc~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin
[oldboy@linuxidc~]$

root用户的环境变量和家目录如下

[root@linuxidc~]# echo ~
/root
[root@linuxidc~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@linuxidc~]#

测试效果

root -> linuxidc (su -)

[root@linuxidc~]# pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@linuxidc~]# su – linuxidc
[oldboy@linuxidc~]$ pwd && echo $PATH
/home/linuxidc
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin

oldboy -> root (su -)

[linuxidc@linuxidc~]$ pwd && echo $PATH
/home/linuxidc
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin
[oldboy@linuxidc~]$ su – root
Password:
[root@linuxidc~]# pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

root -> linuxidc (su)

[root@linuxidc~]# pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@linuxidc~]# su linuxidc
[oldboy@linuxidc/root]$ pwd && echo $PATH
/root
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

linuxidc -> root (su)

[linuxidc@linuxidc~]$ pwd && echo $PATH
/home/linuxidc
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin
[oldboy@linuxidc~]$ su root
Password:
[root@linuxidc/home/linuxidc]# pwd && echo $PATH
/home/linuxidc
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin

结论

切换用户尽量使用su -干净彻底,符合人类认知

问题: 一不小心使用su切换了用户,傻傻分不清自己到底用的是哪个环境,怎么办?

解决: 使用su - username 再切换一次,即使自己已经是linuxidc用户,还是可以su - linuxidc
再切换一次,以达到更改操作环境的目的

[linuxidc@linuxidc~]$ pwd && echo $PATH
/home/linuxidc
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin
[oldboy@linuxidc~]$ su root
Password:
[root@linuxidc/home/linuxidc]# pwd && echo $PATH
/home/linuxidc    # what ? 我的环境乱了
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/linuxidc/bin
[root@linuxidc/home/linuxidc]# su – root
[root@linuxidc~]# pwd && echo $PATH
/root  # ok 回到了熟悉的环境
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin


举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux下su与su -命令的区别
喜欢 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到