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_COMPILE DESTDIR INSTALL_MOD_PATH"

再执行sudo make modules_install就可以了

参考文献: https://www.chenyudong.com/archives/sudo-keep-env.html

原文地址:https://www.cnblogs.com/windtail/p/8718470.html

时间: 2024-10-22 23:22:00

sudo保持环境变量的相关文章

SUDO的环境变量为何不同?

Refer: http://blog.sina.com.cn/s/blog_4da051a60102uyvg.html 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: $ cat tesh.sh echo $var $ var=aaa $ export var # export 变量 $ sudo echo $var # sudo执行echo命令,返回变

sudo 和环境变量

https://askubuntu.com/questions/57915/environment-variables-when-run-with-sudo https://www.phusionpassenger.com/library/indepth/environment_variables.html 环境变量放在sudo前面会失效,放到sudo后面可以生效

4. sudo,PATH环境变量,修改字符集,ntpserver,加大文件描述符,隐藏内核版本,锁定关键系统文件

1   命令:  visudo 98gg      98行 yy           复制当前行 p             粘贴 改成   zhang   ALL(ALL)  NOPASSWD:ALL 2  修改PATH环境变量路径 PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径.比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bi

sudo执行脚本找不到环境变量解决方法

问题: 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本, 然后再sudo执行脚本,就找不到变量,未能获取到值. 原因 sudo运行时,会默认重置环境变量为安全的环境变量,也即,但前设置的变量都会失效,只有少数配置文件中指定的环境变量能保存下来. sudo的配置文件是 /etc/sudoers 需要root权限才能读取: 在/etc/sudoers中修改:Defaults    env_reset为:Defaults   

sudo执行命令时环境变量被重置的解决方法

sudo有时候会出现找不到命令,而PATH路径下明明包含该命令的情况.这主要是由于系统安全的考虑,当 sudo以管理权限执行命令的时候,系统将PATH环境变量进行了重置,使得当前用户的环境变量不会应用到sudo启动的程序.解决这种问题有如下两种方法: 1.使用-E选项: $ sudo -E pacman -Syu 2.修改/etc/sudoers文件中的内容: Defaults env_reset => Defaults !env_reset

sudo如何保持当前用户的环境变量?

现象,我在/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 方法二. 可以把需要传递环境

linux sudo 系统环境变量 用户环境变量

1. sudo就是普通用户临时拥有root的权限.好处在于,大多数时候使用用户自定义的配置,少数情况可以通过sudo实现root权限做事. 故而,需要注意的一点是,在你使用了sudo后,你临时不再是原先用户,不能使用属于自己的命令.举个例子:sudo source ... 该命令会执行失败,提示没有source命令.但你去掉sudo,又可以执行了.(从侧面可以反映sudo不等于获得root所有权限.)莫要滥用sudo. 2. 系统环境变量,对应/etc/profile文件,对所有用户有效.而用户

解决sudo用户找不到环境变量的问题

出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态.所以PATH这个变量不包括用户自定义设置的内容 在sudo用户的主目录里的.bashrc中添加如下内容即可解决 $ vim ~/.bashrc alias sudo="sudo env PATH=$PATH" 有这样一个shell脚本,其内容如下,没有给其x权限 vim test.sh #!/bin/bash echo "${PATH}" # 执行该脚本,可以看到echo输

Ubuntu 下如何设置 Java 环境变量

1.下载 jdk,当前的版本是 jdk-8u45.选择适合自己系统的版本进行下载,下载好之后放在 Download 目录下 2.然后使用 Ctrl + Alt + t 打开终端进入 Download 目录下,使用 tar -xf jdk-8u45-linux-x64.tar.gz 命令进行解压,接着再使用命令 sudo cp -r jdk1.8.0_45/ /usr/lib/,输入密码,即可将其拷贝到 /usr/lib 目录下.此时使用 ls /usr/lib/jdk1.8.0_45 命令便可查