sudo 和环境变量】的更多相关文章

https://askubuntu.com/questions/57915/environment-variables-when-run-with-sudo https://www.phusionpassenger.com/library/indepth/environment_variables.html 环境变量放在sudo前面会失效,放到sudo后面可以生效…
编译Linux内核的最后是make modules_install install,这两个一般都需要root权限,即sudo,而一般我交叉编译内核时都是在.bashrc中export ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 等等,而sudo默认会复位掉环境变量,导致设置的变量无效. sudo visudo 执行以上命令,在打在的文件中 Defaults env_reset行下面加一行 Defaults env_keep="ARCH CROSSED_…
1   命令:  visudo              98gg      98行             yy           复制当前行             p             粘贴            改成   zhang   ALL(ALL)  NOPASSWD:ALL     2  修改PATH环境变量路径 PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径.比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,…
sudo执行脚本找不到变量 问题 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: $ cat tesh.sh echo $var $ var=aaa $ export var # export 变量 $ sudo echo $var # sudo执行echo命令,返回变量值 aaa $ sudo bash test.sh # sudo执行脚本,不能获取变…
这是第一次在博客园中写自己的随笔,也是第一次使用Markdown的编辑环境,值得纪念一下!希望在以后学习linux的道路上能多多记录自己的学习心得和遇到问题的解决方法,朝着运维的方向迈出坚实的脚步. 问题描述 最近在编译一个开源软件时,在好不容易配置好各种编译环境之后,由于各种权限问题还是无法正常进行编译,所以索性切换到root用户下进行编译,这时自然不存在所谓的无权限问题了.但是有时候并不想在root用户和普通用户来回切换,说白了就是懒得输入root用户的密码,太长了.于是就想到了sudo命令…
通过sudo -l来查看sudo的限制: $ sudo -l Matching Defaults entries for xxx on this host: env_reset, mail_badpass,secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User xxx may run the following commands on this host: (ALL : ALL) NOP…
简介 变量 普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: $ cat tesh.sh echo $var $ var=aaa $ export var # export 变量 $ sudo echo $var # sudo执行echo命令,返回变量值 aaa $ sudo bash test.sh # sudo执行脚本,不能获取变量值 $ bash te…
1. sudo 和 root不完全等效,继承的环境变量不一样,最主要的区别还是输入的密码不同. 2. 使用sudo去执行一个程序时,出于安全的考虑,这个程序将在一个新的.最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了.由于环境变量的原因,比如pip可以执行,但是sudo pip不一定可以执行(PATH改变了,除非加上完整路径). 3. 默认情况下sudo会重置PATH环境变量,赋给PATH的值在/etc/sudoers文件中的“Defaults …
1. sudo就是普通用户临时拥有root的权限.好处在于,大多数时候使用用户自定义的配置,少数情况可以通过sudo实现root权限做事. 故而,需要注意的一点是,在你使用了sudo后,你临时不再是原先用户,不能使用属于自己的命令.举个例子:sudo source ... 该命令会执行失败,提示没有source命令.但你去掉sudo,又可以执行了.(从侧面可以反映sudo不等于获得root所有权限.)莫要滥用sudo. 2. 系统环境变量,对应/etc/profile文件,对所有用户有效.而用户…
问题: 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本, 然后再sudo执行脚本,就找不到变量,未能获取到值. 原因 sudo运行时,会默认重置环境变量为安全的环境变量,也即,但前设置的变量都会失效,只有少数配置文件中指定的环境变量能保存下来. sudo的配置文件是 /etc/sudoers 需要root权限才能读取: 在/etc/sudoers中修改:Defaults    env_reset为:Defaults   …
现象,我在/etc/profile里设置全局代理,然后使用命令 1.curl http://www.baidu.com  走代理 2.sudo curl http://www.baidu.com 并没有走代理 使用env和sudo env查看环境变量,发现代理设置只存在于env里,sudo env里并没有代理的信息 那么如何使用sudo的时候,把环境变量也带进去呢? 方法一. 在/etc/sudoers中添加以下内容作用相同: Defaults !env_reset 方法二. 可以把需要传递环境…
如果系统不能通过root登陆,而是需要使用其他用户sudo的方式登陆root,那么root的环境变量很难设置,修改/etc/profile也没有用.可以通过下面这个方式解决 修改sudoer的配置文件 visudo 在 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin 这一行,后面追加你想要的环境变量,这个设置实时生效.比如,我想把/usr/local/bin添加进去,改后如下 Defaults    secure_path = /s…
sudo中默认配置会重置环境变量,所以使用sudo的时候需要小心这点.如何让sudo继承我们需要的环境变量?有如下两种方法: #sudo visudo 或者 #vi  /etc/sudoers     在Defaults env_keep添加JAVA_HOME和PATH就可以继承下来已有的环境变量了. 或者 1.编辑/etc/sudoers文件把Defaults env_reset改成Defaults !env_reset 2.编辑.bashrc,最后添加alias sudo='sudo env…
参考这里:https://www.cnblogs.com/zhongshiqiang/p/10839666.html 使用sudo -E 保留当前用户环境,这时就不会存在找不到环境变量的问题了.…
文件末尾加入下面 JAVA_HOME 是jdk主目录 export JAVA_HOME=/usr/jdkexport JRE_HOME=${JAVA_HOME}/jre  export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  export PATH=${JAVA_HOME}/bin:$PATH 保存 source /etc/profile 尝试一下 java -version 就可以查看java版本 说明配置成功 如果你尝试sudo java…
出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态.所以PATH这个变量不包括用户自定义设置的内容 在sudo用户的主目录里的.bashrc中添加如下内容即可解决 $ vim ~/.bashrc alias sudo="sudo env PATH=$PATH" 有这样一个shell脚本,其内容如下,没有给其x权限 vim test.sh #!/bin/bash echo "${PATH}" # 执行该脚本,可以看到echo输…
出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态. 所以PATH这个变量不包括用户自定义设置的内容,如找不到/usr/local/bin/下面的命令在sudo用户的主目录里的.bashrc中添加如下内容即可解决 $ vim ~/.bashrc #在最下面添加如下一行 alias sudo="sudo env PATH=$PATH" source ~/.bashrc 之后sudo就有可以找到/usr/local/bin下面的命令了…
修改环境变量PATH 最近为root添加一个环境变量发现sudo su进去没有变化所以总结了一下所有设置环境变量的方法: 查看PATH:echo $PATH 直接在命令行修改,就可以使用,但是只有在当前的窗口和用户有用, 关闭以后就失效了,所以如果是临时使用可以这样设置 export PATH=/usr/test/bin:$PATH 修改家目录下.bashrc文件,只对当前用户有用,是永久的,除非删除或者修改该文件. 如果只是自己使用添加的命令的推荐使用. 修改文件以后有两种方法使其起作用: 关…
百度出Ubuntu中配置Java环境变量时,在利用sudo gedit /etc/profile 对profile编辑后, 在terminal中输入 sudo source /etc/profile,为了使profile文件更改成功时,出现command not found. 是因为用户权限不够,虽然普通用户已经用sudo获取了权限(这里不是很理解为什么,也是百度出的答案,如不对,还请指正呐!). 输入 sudo -s 输入 source /etc/profile 此时输入 java -vers…
一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量. 所以管理环境变量的文件也分为系统级和用户级的,下面贴一个网上找到的讲的比较明白的文件介绍(略作修改)[1]: 1.系统级: (1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个…
Mac 启动加载文件位置(可设置环境变量) ------------------------------------------------------- (1)首先要知道你使用的Mac OS X是什么样的Shell,使用命令 echo $SHELL 如果输出的是:csh或者是tcsh,那么你用的就是C Shell. 如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种. Mac OS X 10.2之前默认的是C Shell. Mac OS X 10.3之…
近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如下 1:下载jdk包:本章使用的为后缀为tar.gz的文件(不需要安装),如jdk-7u67-linux-i586.tar.gz 2: 把jdk文件保存至Linux下目录:通过控制台,使用mkdir命令生成user/java目录,并把文件放入其下 3:解压tar.gz文件:通过控制台,进入user/…
linux中环境变量分为系统环境变量和用户环境变量(和window中一样),系统环境变量对所有系统用户都有效,用户环境变量只对当前用户有效,我们以ubuntu为例说明 用户环境变量 用户环境变量通常存储在下面文件中 ~/.profile ~/.bash_profile或~/.bash_login ~/.profile 系统环境变量 系统环境变量通常存储在下面文件中 /etc/environment /etc/profile /etc/bash.bashrc 修改环境变量 如想将一个路径加入到$P…
打开终端并输入: sudo gedit /etc/environment. 2 输入用户密码.这时输入的密码是不可见的. 3 如图,在PATH="...."的末尾处添加: :/opt/EmbedSky/4.3.3/bin 其中/opt/EmbedSky/4.3.3/bin为你自己需要设置的环境变量路径. 4 使其立即生效,在终端执行: source /etc/environment 或者重启电脑即可. END 设置当前用户环境变量     打开终端并输入: sudo gedit ~/.…
Mac下添加java环境变量 方法一:全局配置   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #临时提权   sudo su   #输入密码   vi /etc/profile #配置JAVA_HOME,此处路径根据自己的版本填写 JAVA_HOME="/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/" CLASS_PATH="$JAVA_HOME/li…
Linux中环境变量文件及配置   一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量.所以管理环境变量的文件也分为系统级和用户级的,下面贴一个网上找到的讲的比较明白的文件介绍(略作修改)[1]:1.系统级:(1)/etc/profile:该文件是用户登录时,操作…
  一.首先需要了解 1>mac 一般使用bash作为默认shell 2>Mac系统的环境变量,加载顺序为: 1.系统级别的 /etc/profile /etc/bashrc /etc/paths 2.用户级别的 ~/.bash_profile (mac用的) ~/.bash_login ~/.profile ~/.bashrc (这个linux用的) 加载规则: <1>/etc/profile,/etc/bashrc和/etc/paths是系统级别的,系统启动就会加载 <2…
刚申请了阿里云,平时很少接触Linux,特此记录一下Linux系统下安装JDK的步骤. 1.进入usr:cd /usr: 2.创建java文件夹:mkdir java: 3.将下载好的文件拷贝至java文件中:cp /home/download/jdk-8u111-linux-x64.tar /usr/java: 4.进入java文件夹:cd /usr/java,解压jdk到当前目录:tar -xvf jdk-8u111-linux-x64.tar: 5.编辑配置文件,配置环境变量:sudo v…
第一次用Mac做开发,在网上也搜索了一些环境变量配置的文章,在此总结一下以方便日后使用. 1.打开终端Terminal: 2.进入当前用户主目录,cd ~: 3.临时授权,sudo su: 4.输入密码(密码不显示): 5.创建.bash_profile文件,touch .bash_profile(如果存在则不必新建,我的没有): 6.打开.bash_profile文件,open .bash_profile(能打开则新建成功): 7.输入jdk文件路径,系统默认的是1.6,我的是1.8,可以两个…
mac 一般使用bash作为默认shell Mac系统的环境变量,加载顺序为:/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量.后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会…