关于su user和su - user的区别

网上有一个已经写得比较清楚的了,自己也按照作者的思路试验过,这里直接粘贴过来:

 

1.su user

 

仅仅是切换用户user,切换之后,user的默认目录并不是/home/user路径,例如:

 

[root@redhat ~]# ls
anaconda-ks.cfg  Desktop  install.log  install.log.syslog
[root@redhat ~]# pwd
/root                         --root用户当前路径
[root@redhat ~]# su oracle
[oracle@redhat root]$ pwd
/root                         --切换用户oracle之后,还是保持root用户的路径
[oracle@redhat root]$
 

 

2.su - user

 

su - user 实际上就是 su -l user.

 

此时切换用户之后,就好像重新以该user登录一样,大部分的环境变量都以该user为主,工作的路径也会相应的改变,而且改变PATH变量。

 

例如

 

[root@redhat ~]# pwd
/root                             --root用户当前路径
[root@redhat ~]# su - oracle
[oracle@redhat ~]$ pwd
/home/oracle                      --切换用户oracle之后,oracle自己的home路径
[oracle@redhat ~]$
 
再举一个例子,更明显:
[oracle@redhat root]$ su            --用su切换到root用户
Password: 
[root@redhat ~]# ifconfig           --查看网络配置
bash: ifconfig: command not found   --结果显示没有找到该命令
[root@redhat ~]# su - root          --用su - 切换到root用户
[root@redhat ~]# ifconfig           --查看网络配置,命令正常运行
 
总的来讲,su - user是真正的在该用户下进行的操作。(不知这样理解有没有问题,如果我理解错了的话欢迎批评指正)
 

 

posted @ 2017-11-05 20:40  金开仙人  阅读(417)  评论(0编辑  收藏  举报