linux - 关于CentOS7在root用户下查看环境变量$USER的问题
PHP中文网
PHP中文网 2017-04-17 16:36:11
[Linux讨论组]

在CentOS下从普通用户使用su命令切换到root用户后,查看$USER环境变量本应该变为root,可我查看到的仍为普通用户名。
同样的,在Ubuntu中从普通用户切换到root用户后,$USER环境变量显示为root。退出root后$USER变为普通用户名。

CentOS下的操作

Ubuntu下的操作

而后又使用root登陆CentOS系统,$USER显示为root,切换到普通用户后$USER变量也能随之变化为普通用户名。操作如下:

root登陆CentOS下的操作


想问这种现象出现在CentOS上是为什么呢?
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
高洛峰

su - username,su后面加个-就行了

直接用su是不完全切换,加-是完全切换,相当于登出重新登录

ringa_lee

表示不知道怎么采纳答案,点了没反应,只有点旁边的自问自答了。
按照@jokester的提示,我也查看centos man su,里面明确地提到了这种情况。
su命令不会改变当前的目录,并且仅对环境变量HOME和SHELL做设置(如果目标用户非root用户,还会对环境变量USER和LOGNAME进行设置)。
我在非root用户下使用了su命令切换到root,因此,将会更改的环境变量只有HOME和SHELL,没有USER和LOGNAME。

另外,在ubuntu的man里面好像没有提到这个,可能是我阅读太烂。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号