1. sudo 和 root不完全等效,继承的环境变量不一样,最主要的区别还是输入的密码不同。

2. 使用sudo去执行一个程序时,出于安全的考虑,这个程序将在一个新的、最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了。由于环境变量的原因,比如pip可以执行,但是sudo pip不一定可以执行(PATH改变了,除非加上完整路径)。

3. 默认情况下sudo会重置PATH环境变量,赋给PATH的值在/etc/sudoers文件中的“Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin”中设定。所以如果使用sudo运行程序,最好补全完整路径。

4. /etc/sudoers文件中的“Defaults    env_reset”控制了sudo默认不会继承原有环境。如果改成“Defaults    !env_reset”则会继承原有环境(可以在普通账号的”.bashrc”中建立一个测试环境变量TESTV,然后使用“sudo bash”,再测试不同设置下,是否能看到TESTV的值)。同时,如果是“Defaults    env_reset”,那么可以在下方的“”env_keep”里设置需要保留的环境变量。

5. 如果使用“sudo bash”。那么相当于运行了一个“ interactive bash shell”,会“source /root/.bashrc”,也就会有root的环境变量。sudo成root之后,uid/gid和root账户一致。

6. 运行如“sudo echo $PATH”看到的仍然是当前普通用户的PATH,这是因为shell在执行命令之前会先替换$PATH,所以这个命令最后变成了“sudo echo /home/testuse/.......”,输出的仍然是用户的PATH。

7. python运行时,遇到import module,会依次在当前目录、环境变量PYTHONPATH、python的安装设置相关的默认路径中查找。如果module内也有import A,也会按照这个次序搜寻文件。所以函数库发布时,会提示需要预先安装的库,并指定文件位置或环境变量。

sudo环境变量问题;程序库函数寻找的更多相关文章

  1. linux sudo环境变量设置

    这是第一次在博客园中写自己的随笔,也是第一次使用Markdown的编辑环境,值得纪念一下!希望在以后学习linux的道路上能多多记录自己的学习心得和遇到问题的解决方法,朝着运维的方向迈出坚实的脚步. ...

  2. Sudo环境变量继承

    sudo中默认配置会重置环境变量,所以使用sudo的时候需要小心这点.如何让sudo继承我们需要的环境变量?有如下两种方法: #sudo visudo 或者 #vi  /etc/sudoers     ...

  3. 一键设置Fluent环境变量小程序

    使用视频教程优酷播放地址: https://v.youku.com/v_show/id_XNDU2MTkwNDg5Mg==.html?spm=a2hzp.8244740.0.0 一键设置环境变量小软件 ...

  4. Powershell环境变量

    Powershell环境变量 9 12月, 2011  在 Powershell tagged 变量by Mooser Lee 本文索引 [隐藏] 1读取特殊的环境变量 2查找环境变量 3创建新的环境 ...

  5. MySQL基础之 path环境变量的作用 (科普)

    在谈mysql配置环境变量之前,先谈一下windows环境变量的作用,有时候在windows cmd窗口运行命令时,经常会出现“XXX不是内部或外部命令的提示” 原因是系统没有找到执行相应命令的文件( ...

  6. py安装以及配置pip环境变量

    安装python,安装包链接:https://pan.baidu.com/s/1u4tA-FJMxtrtJTap-zFh3g 密码:gh1c 默然安装到了C盘 安装pycharm:安装包链接:链接:h ...

  7. 【JDK配置原创】JDK(JRE)环境变量配置原理 --费元星

    已经配置了很多次jdk了,每次都是安装网上的教程配的,今天突然想了解了解原理了,整理一下! 参考贴( http://blog.csdn.net/wkupaochuan/article/details/ ...

  8. 更优雅的配置:docker/运维/业务中的环境变量

    目录 docker-compose 环境变量 .env 文件 env_file docker stack 不支持基于文件的环境变量 envsubst envsubst.py 1. 使用行内键值对 2. ...

  9. 【linux草鞋应用编程系列】_2_ 环境变量和进程控制

    一. 环境变量     应用程序在执行的时候,可能需要获取系统的环境变量,从而执行一些相应的操作.     在linux中有两种方法获取环境变量,分述如下.   1.通过main函数的参数获取环境变量 ...

随机推荐

  1. nexus使用方法

    转自:https://www.cnblogs.com/grey-wolf/p/6481166.html centos7搭建nexus maven私服   前置条件: 1.安装jdk,可参考 http: ...

  2. windows系统常用软件及配置介绍

    常用工具 ,,,, 开发工具 ,,, 快捷键 ... 等等 vvv 等等

  3. 焦作网络赛E-JiuYuanWantstoEat【树链剖分】【线段树】

    You ye Jiu yuan is the daughter of the Great GOD Emancipator. And when she becomes an adult, she wil ...

  4. MySQL Bugs: #34354: Feature request: EXPLAIN ALTER TABLE https://bugs.mysql.com/bug.php?id=34354

    MySQL Bugs: #34354: Feature request: EXPLAIN ALTER TABLE https://bugs.mysql.com/bug.php?id=34354 [SQ ...

  5. 每次收到的 HTTP 请求,就可以打开一个 SqlSession,返回一个响应,就关闭它

    mybatis – MyBatis 3 | 入门 http://www.mybatis.org/mybatis-3/zh/getting-started.html 作用域(Scope)和生命周期 理解 ...

  6. sklearn学习笔记(一)——数据预处理 sklearn.preprocessing

    https://blog.csdn.net/zhangyang10d/article/details/53418227 数据预处理 sklearn.preprocessing 标准化 (Standar ...

  7. 实现IT服务弹性伸缩的利器

    随着互联网业务快速持续增长,IT资源使用量按需变化成为常态,这就要求信息部门能快速响应资源使用的变化要求,对运维提出不小挑战.比如电商.在线教育等企业经常推出一些秒杀.抢红包活动,在特定时间段对资源的 ...

  8. 小米范工具系列之一:小米范 web查找器

    最新版本1.5,下载地址:http://pan.baidu.com/s/1c1NDSVe  文件名web finder,请使用java1.8运行 小米范 web查找器主要功能为快速端口扫描,并识别we ...

  9. 流畅的python 读书笔记 第二章 序列构成的数组 列表推导

    列表推导是构建列表(list)的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列.如果你的代码里并不经常使用它们,那么很可能你错过了许多写出可读性更好且更高效的代码的机会. 2.2.1 列表推 ...

  10. 怎么应对 domino文档损坏然后损坏文档别删除导致数据丢失

    对于domino 有个机制是同步 ..然后如果文档被损坏之后会通过同步或者压缩 之类的 然后将损坏文档删除 那么这样就有个风险..知识管理文档会被删除. 并且删除了之后管理员如果不仔细看日志的话也不会 ...