关于使用sudo命令后找不到JAVA_HOME的问题
今天在虚拟机搭建zookeeper环境,结果死活运行不起来,唯一的信息只有out文件里“没有java命令”这一个提示,找来找去发现是找不到java运行环境。可是很奇怪,明明我已经配置了,而且在终端执行java -version是有信息的,可是在 zkServer.sh 和 zkEnv.sh 中 echo $JAVA_HOME 确实为空。后来百读到了答案:
https://blog.csdn.net/m0_38086372/article/details/88542909
=====================================================================================================
原因
sudo命令会重置环境变量,查看文件/etc/sudoers,可以看到这样的配置
Defaults env_reset
1
解决方法
第一种,也是最简单的,使用sudo -E来代替sudo即可保留当前用户的环境变量,但缺点也很明显,每次都要加
第二种方式:修改/etc/sudoers文件,将Defaults env_reset改为 Defaults !env_reset,这样以后使用sudo就再也不会重置环境变量了
需要注意的是`/etc/sudoers`是只读文件,vim不能更改,要使用`visudo`命令(不用加文件名)来更改内容
1
不过大部分环境变量我们一般都用不着,这种情况就可以在配置中添加env_keep,来使指定的几个环境变量保持不变
具体的做法是在 /etc/sudoers中添加语句 Defaults env_keep += "env1 env2" ,这样环境变量env1 和env2就可以在sudo执行时保留原来的值
不过既然/etc/sudoers是个只读文件,就不是用来让我们改来改去的;还除了它,我们还可以在目录/etc/sudoers.d/下随便创建文件,写入 Defaults env_keep += "env1 env2",效果和在/etc/sudoers中是一样的,也更加方便删除和修改
---------------------
作者:hhgfy
来源:CSDN
原文:https://blog.csdn.net/m0_38086372/article/details/88542909
版权声明:本文为博主原创文章,转载请附上博文链接!
===================================================================================================
奶奶的,原来使用了sudo还会把环境变量重置了
关于使用sudo命令后找不到JAVA_HOME的问题的更多相关文章
- 记一次beego通过go get命令后找不到bee.exe的坑
学习goweb开发,gin是个轻量级的框架.如果想要一个类如aspnetmvc帮我们搭建好了的goweb框架,beego值得去学习.否则gin下面需要动手构建好多代码.新手还是先学现成的节约时间成本. ...
- debian安装后sudo命令不能用的解决方法
注:转载他人 且试用过了,我的debian版本是debian8.2 64X debian安装完之后发现sudo命令不能用 找了半天发现是没有安装sudo 得了,进入root安包,炸开他,apt-get ...
- sudo pm2 提示 找不到命令
一共有 3 台 staging 环境服务器,5 台生产环境服务器,centos7系统.前阵子刚给所有研发配置了自己的账号,今天有小伙伴说,在其中两台服务器上 sudo pm2 list 提示: sud ...
- CentOS7用yum安装wget命令后仍然提示命令找不到的解决方法
需求:用的AWS实例自带的CentOS7用yum安装wget命令后扔提示命令找不到,后面用源码安装方式解决,下面先讲解决方法,疑问及知识点扩展最后写出 1.问题(因是mini版本系统,有些基本命令扔需 ...
- ubuntu修复找不到sudo命令
1.首先,您需要安装该sudo命令.你可以使用 apt 包管理器来做到这一点.您需要以有权安装软件包的用户身份运行此命令,例如root: apt-get install sudo 2.下一步是为您自己 ...
- sudo执行脚本找不到环境变量
sudo执行脚本找不到变量 问题 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能 ...
- CentOS6.6普通用户使用sudo命令借用root用户权限
一.描写叙述 普通用户hadoop使用:tar -xzvf ns2.35.tar.gz命令解压文件,系统提示找不到该文件,无法打开该文件夹,于是想到使用sudo命令借用root用户的权限:sudo t ...
- ubuntu16 升级后找不到 eth0 网卡 的解决方法
ubuntu16 升级后找不到 eth0 网卡 的解决方法 今天在VPS上一时手痒,执行了升级命令 apt-get update 更新软件包索引,源 apt-get upgrade 更新软件包 apt ...
- 【ARM-Linux开发】Ubuntu下的/usr目录权限,导致不能使用sudo命令的修复
刚开始运行sudo时,报了下面这个错误 sudo: must be setuid root,于是上网找解决方法,搜索出来的都是这样解决的 ls -l /usr/bin/sudochown root: ...
随机推荐
- B4010 菜肴制作 拓扑排序(附随机跳题代码)
今天写了一个自己的随机跳题小程序,第一次试发现跳的全是不可做题,但是在周围我一眼看见了这个题,不能说一眼看出来,但是也是比较有思路,所以就做他了! 做得比较顺利,做完之后美滋滋,突然发现样例第三组过不 ...
- JS页面刷新保持数据不丢失
转自:https://blog.csdn.net/qq_32439101/article/details/78134877 下面是 DOM Storage 的接口定义: interface Stora ...
- Nginx代理配置-centos6.10版
nginx代理配置 cd /etc/nginx/init.d vi default.conf 添加: upstream server1{ server 192.168.125.128:8100 wei ...
- iOS开发之判断手机号和邮箱 正则表达式
#pragma mark --判断手机号合法性 + (BOOL)checkPhone:(NSString *)phoneNumber { NSString *regex = @"^((13[ ...
- Java 类加载器及加载Class字节码
参考来源:http://www.cnblogs.com/fingerboy/p/5456371.html java笔记--理解java类加载器以及ClassLoader类 参考来源:htt ...
- 基于mybatis向oracle中插入数据的性能对比
数据库表结构: 逐条插入sql语句: <insert id="insert" parameterType="com.Structure"> INSE ...
- CSS样式优先级和权重问题(部分)
内联样式: <div style="font-size: 12px;">姓名</div> 外部样式: <link rel="styleshe ...
- hibernate_07_单表操作_增删改操作
首先,创建类对象 package com.imooc.hibernate; public class Address { private String postcode; //邮编 private S ...
- Equals相關的一些要點
什麽時候需要覆蓋Equals? 自定義的值類型需要覆蓋,因爲框架默認的實現是基於反射的,效率不高. 自定義的引用類型要根據業務需要來決定是否提供覆蓋. 什麽時候需要覆蓋operator==()? ...
- Qt无法用UTF-8编辑问题
原因: Windows默认编码格式是GBK. 而QT-各默认版本的编码格式是UTF-8. 解决方法": Windows环境下,Qt Creator,菜单->工具->选项-> ...