关于CentOS7在root用户下查看环境变量$USER的问题
在CentOS下从普通用户使用su命令切换到root用户后,查看$USER环境变量本应该变为root,可我查看到的仍为普通用户名。
同样的,在Ubuntu中从普通用户切换到root用户后,$USER环境变量显示为root。退出root后$USER变为普通用户名。
CentOS下的操作
Ubuntu下的操作
而后又使用root登陆CentOS系统,$USER显示为root,切换到普通用户后$USER变量也能随之变化为普通用户名。操作如下:
root登陆CentOS下的操作
想问这种现象出现在CentOS上是为什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
su - username,su后面加个-就行了
直接用su是不完全切换,加-是完全切换,相当于登出重新登录
表示不知道怎么采纳答案,点了没反应,只有点旁边的自问自答了。
按照@jokester的提示,我也查看centos man su,里面明确地提到了这种情况。
su命令不会改变当前的目录,并且仅对环境变量HOME和SHELL做设置(如果目标用户非root用户,还会对环境变量USER和LOGNAME进行设置)。
我在非root用户下使用了su命令切换到root,因此,将会更改的环境变量只有HOME和SHELL,没有USER和LOGNAME。
另外,在ubuntu的man里面好像没有提到这个,可能是我阅读太烂。