关于su user和su - user的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于su user和su - user的区别相关的知识,希望对你有一定的参考价值。
网上有一个已经写得比较清楚的了,自己也按照作者的思路试验过,这里直接粘贴过来:
1.su user
仅仅是切换用户user,切换之后,user的默认目录并不是/home/user路径,例如:
[[email protected] ~]# ls
anaconda-ks.cfg Desktop install.log install.log.syslog
[[email protected] ~]# pwd
/root --root用户当前路径
[[email protected] ~]# su oracle
[[email protected] root]$ pwd
/root --切换用户oracle之后,还是保持root用户的路径
[[email protected] root]$
anaconda-ks.cfg Desktop install.log install.log.syslog
[[email protected] ~]# pwd
/root --root用户当前路径
[[email protected] ~]# su oracle
[[email protected] root]$ pwd
/root --切换用户oracle之后,还是保持root用户的路径
[[email protected] root]$
2.su - user
su - user 实际上就是 su -l user.
此时切换用户之后,就好像重新以该user登录一样,大部分的环境变量都以该user为主,工作的路径也会相应的改变,而且改变PATH变量。
例如
[[email protected] ~]# pwd
/root --root用户当前路径
[[email protected] ~]# su - oracle
[[email protected] ~]$ pwd
/home/oracle --切换用户oracle之后,oracle自己的home路径
[[email protected] ~]$
/root --root用户当前路径
[[email protected] ~]# su - oracle
[[email protected] ~]$ pwd
/home/oracle --切换用户oracle之后,oracle自己的home路径
[[email protected] ~]$
再举一个例子,更明显:
[[email protected] root]$ su --用su切换到root用户
Password:
[[email protected] ~]# ifconfig --查看网络配置
bash: ifconfig: command not found --结果显示没有找到该命令
[[email protected] ~]# su - root --用su - 切换到root用户
[[email protected] ~]# ifconfig --查看网络配置,命令正常运行
Password:
[[email protected] ~]# ifconfig --查看网络配置
bash: ifconfig: command not found --结果显示没有找到该命令
[[email protected] ~]# su - root --用su - 切换到root用户
[[email protected] ~]# ifconfig --查看网络配置,命令正常运行
总的来讲,su - user是真正的在该用户下进行的操作。(不知这样理解有没有问题,如果我理解错了的话欢迎批评指正)
以上是关于关于su user和su - user的区别的主要内容,如果未能解决你的问题,请参考以下文章
linux su(switch user)和sudo(superuser do)的区别?(sudo su与su的区别)
Linux 系统中用户切换(su user与 su - user 的区别)
Linux 系统中用户切换(su user与 su - user 的区别)