linux子用户修改环境变量,切换到root环境用户变量不生效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux子用户修改环境变量,切换到root环境用户变量不生效相关的知识,希望对你有一定的参考价值。
参考技术A 修改 /root/.bashrc 添加子用户登录的Ubuntu系统,然后修改了/etc/profile环境变量(配置了JAVA_HOME), 并且执行过 source /etc/profile , 在当前用户下 java -version 是正常的, 但是 su root 切换到root用户后 java -version 无效(环境变量失效), 需再执行 source /etc/profile 才行.
网上说的大多是 /etc/profile中的修改需系统启动后方生效
su切换用户
#查看当前用户
[[email protected] ~]# id
uid=0(root) gid=0(root) 组=0(root)
[[email protected] ~]# whoami
root
su 切换用户
- 在切换用户的同时,把用户的环境变量全部切换到那个用户的环境变量下;若不加这个-,就是当前的环境变量下
注:root切换到其他用户下,不需要输入密码;而其他用户切换到root下,是需要输入密码的。
# - 加与不加的区别
[[email protected] ~]# su wyy
[[email protected] root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] root]$ pwd
/root
[[email protected] root]$ exit
exit
[[email protected] ~]# su - wyy
[[email protected] ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/wyy/bin
[[email protected] ~]$ pwd
/home/wyy
有时候有这样的需求,切换到普通用户下,目的不是为了切换,是为了在这个用户的环境下去执行一条命令,也就是以这个用户的身份去执行某一条命令。不用切换,可以直接这样用:
#查看用户的id
[[email protected] ~]# su - -c "id" wyy
uid=500(wyy) gid=500(wyy) 组=500(wyy)
#创建目录并查看(若提示权限不够,把/tmp权限修改为1777)
[[email protected] ~]# su - -c "mkdir /tmp/1212" wyy
[[email protected] ~]# su - -c "ls -ld /tmp/1212" wyy
drwxrwxr-x 2 wyy wyy 4096 9月 24 11:17 /tmp/1212
本文出自 “linux” 博客,转载请与作者联系!
以上是关于linux子用户修改环境变量,切换到root环境用户变量不生效的主要内容,如果未能解决你的问题,请参考以下文章