linux中su 和su -的区别

本文详细解析了Linux环境下使用su和su-命令切换用户时的不同之处,主要体现在环境变量的变化上。

su和su -都可用作linux方面来切换用户,他们的不同的之处,在于

su 切换到目标用户,只是切换了身份,环境变量切换过来
su -切换到目标用户,既切换了身份,又切换了环境变量

这里是su的操作:

[root@i-rixuvhm5 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@i-rixuvhm5 ~]# echo $PATH
/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@i-rixuvhm5 ~]# su mysql
[mysql@i-rixuvhm5 root]$ id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)
[mysql@i-rixuvhm5 root]$ echo $PATH
/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[mysql@i-rixuvhm5 root]$ 

可以看到,当用su切换到mysql用户,环境变量path依然是原来的

su- 命令操作的结果

[root@i-rixuvhm5 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@i-rixuvhm5 ~]# echo $PATH
/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@i-rixuvhm5 ~]# su - mysql
[mysql@i-rixuvhm5 ~]$ id 
uid=500(mysql) gid=500(mysql) groups=500(mysql)
[mysql@i-rixuvhm5 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/mysql/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
[mysql@i-rixuvhm5 ~]$ 

从上面的操作可以看到su - mysql 后,环境变量换成了mysql用户的环境变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值