su和su -这两个命令的差别

折腾服务器,配置apk动态打包时遇到了这样的问题,root用户找不到JAVA_HOME,但是普通用户可以找到。
   
在Ubuntu环境中安装好Java环境后设置环境变量:在/etc/profile中设置好了JAVA_HOME变量并引入到PATH中,用于Ubuntu默认是不以root用户登录的,这时echo $PATH可以看到JAVA_HOME已经被设置好了,java命令也可以执行。接下来sudo su root,再输入java命令提示找不到java命令,$PATH中也找不到JAVA_HOME这个路径了。查了很久的资料也没有找到原因,后来偶然切换用户的时候用了su - root命令,这时又可以找到JAVA_HOME这个变量了。

对比了一下su和su - 这两个命令的差别才明白:su是切换用户存取权限,但是没有获得环境变量,所以PATH没有被带入;su -是完全的切换用户,可以获得环境变量,所以可以找到JAVA_HOME。

引用通告地址: 点击获取引用地址
标签: linux ubuntu
评论: 8 | 引用: 0 | 阅读: 7306
更多




karina [ 2021-02-05 03:58 网址 | 回复 | 编辑 删除 ]
ernest [ 2020-12-26 23:04 网址 | 回复 | 编辑 删除 ]
james [ 2020-12-04 14:44 网址 | 回复 | 编辑 删除 ]
dominick [ 2020-07-07 02:56 网址 | 回复 | 编辑 删除 ]
wilma [ 2020-05-05 15:06 网址 | 回复 | 编辑 删除 ]
katherine [ 2020-03-23 01:31 网址 | 回复 | 编辑 删除 ]
ronald [ 2020-02-25 17:35 网址 | 回复 | 编辑 删除 ]
ronald [ 2020-02-09 09:07 网址 | 回复 | 编辑 删除 ]
marianne [ 2020-02-03 02:43 网址 | 回复 | 编辑 删除 ]
antonio [ 2019-10-22 02:57 网址 | 回复 | 编辑 删除 ]
发表评论
昵 称: 密 码:
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容:
  • 粗体
  • 斜体
  • 下划线
  • 插入图像
  • 超链接
  • 电子邮件
  • 插入引用