Linux su 和su -的区别

2022年7月27日 1016点热度 0人点赞 0条评论

巧合之下,上午提到了su切换用户的问题,之前也是有几个开发朋友问过这个,小记一下:


su 和su -的区别

    • su 只是切换了用户身份,但Shell环境仍然是之前用户的Shell,不带-的su不会读取目标用户的环境配置文件

    • su - 用户和Shell环境一起切换了,会加载目标用户下的环境配置文件,如.bashrc文件


[root@erptest1 ~]# whoamiroot[root@erptest1 ~]# echo $PATH/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@erptest1 ~]#


不加 -,切换到oracle用户后,PATH变量还跟root一样

[root@erptest1 ~]# su oracle[oracle@erptest1 root]$ echo $PATH/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

加 - 后,才是oracle用户自己的PATH变量值

[root@erptest1 ~]# su - oracle[oracle@erptest1 ~]$ echo $PATH/opt/app/oracle/product/11.2.0/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/home/oracle/bin:/opt/app/oracle/product/11.2.0/lib:/opt/app/oracle/product/11.2.0/jdk:/opt/app/oracle/product/11.2.0/lib32:/usr/lib64:/opt/app/oracle/product/11.2.0:/opt/app/oracle/product/11.2.0/ctx/lib

[root@erptest1 ~]# echo $ORACLE_HOME[root@erptest1 ~][root@erptest1 ~]# su oracle[oracle@erptest1 root]$ echo $ORACLE_HOME
[oracle@erptest1 root]$ [root@erptest1 ~]# su - oracle[oracle@erptest1 ~]$ echo $ORACLE_HOME/opt/app/oracle/product/11.2.0[oracle@erptest1 root]$

64890Linux su 和su -的区别

root

这个人很懒,什么都没留下

文章评论