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

问题描述

最近在编译一个开源软件时,在好不容易配置好各种编译环境之后,由于各种权限问题还是无法正常进行编译,所以索性切换到root用户下进行编译,这时自然不存在所谓的无权限问题了。但是有时候并不想在root用户和普通用户来回切换,说白了就是懒得输入root用户的密码,太长了。于是就想到了sudo命令,但是关键问题就出来了,切换到root用户下能正常编译,使用sudo命令竟然无法编译,提示错误为相关的编译器没有找到,这种问题对于我这种linux的小白来说有点困难,毕竟使用root用户是可以编译通过的。好了以下详细记录自己解决问题的办法吧。

环境变量配置

  1. 对于全局环境变量配置使用/etc/bash.bashrc/etc/profile两个文件,这两个文件中存放了全局的环境变量。也就是说是所用用户共享的环境变量。当然让我困惑的也正是这一点。
  2. 对于局部环境变量,也就是针对每个用户的环境变量,在每个用户家目录下面都有两个隐藏文件分别是.bashrc.profile,这两个文件中记录了,该用户专属的环境变量,当然如果在全局环境变量和局部环境变量中都定义了同一个环境变量的情况下,就会出现环境变量路径重复的情况,不过好像也没有什么大的问题。
  3. 在执行sudo命令的时候,我以为由于环境变量是配置的全局环境中的,所以应该不用管环境变量的问题。带着这个问题去百度了一下找到了有关问题的解释su和sudo的区别,但是关于这篇文章中说的sudo使用的是root的环境变量,我在root的家目录下的.profile文件中添加了需要的路径,但是并没有解决问题,关于这点还带进一步学习啊。其实对于linux的相关文档读的太少了,有待加强。原来sudo使用的是自己的环境变量,于是继续找答案,在sudo环境变量传递中找到了一点思路。但是使用该方法也没有解决问题,可能是自己人品太差了。最后只能使用杀手锏了,在secure_path中添加了需要的路径,这次终于编译通过了。

结论

  1. linux主要作为一个服务器使用,为了保证系统的安全性和给予用户足够的权限执行相关操作,采取的sudo命令使用自己的环境变量也是很有道理的。还是以前对于sudo命令理解的太浅了,经过这回问题的解决,也算是学习了好多,加深了对于sudo命令使用的认识。
  2. 就一个看似很小的环境变量的问题在linux中竟然能引发这多一连串的问题,看来学习linux还有很漫长的道路要走啊,希望自己能每天都进步一点,最终能实现自己linux运维和开发的目标。

linux sudo环境变量设置的更多相关文章

  1. Linux下环境变量设置 (转)

    Linux下环境变量设置 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错 ...

  2. Linux下环境变量设置技巧

    Linux下环境变量设置技巧,不用/etc/profile而是在/etc/profile.d目录下新建特定的shell文件来设置 区别: 1.两个文件都是设置环境变量文件的,/etc/profile是 ...

  3. linux中环境变量设置

    Linux下环境变量设置的三种方法: 如想将一个路径加入到$PATH中,可以像下面这样做: 只对当前的shell 起作用的环境变量 1.控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用 ...

  4. 【Linux】环境变量设置

    在Windows中环境变量设置是非常easy的事情.例如以下图.仅仅要右键我的电脑->高级系统设置->环境变量,选择Path之后,点击"编辑"就能够输入你要加入的内容. ...

  5. Linux 中环境变量设置

    本文主要整理自以下博文: .bash_profile和.bashrc的什么区别及启动过程 linux环境变量设置方法总结(PATH/LD_LIBRARY_PATH) .bash_profile 和 . ...

  6. linux下环境变量设置的问题

    在当前环境变量前新增加一个路径 export PATH=/your/bin/path:$PATH export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_P ...

  7. 在Linux里环境变量设置的方法(export PATH)

    一般来说,配置交叉编译工具链的时候须要指定编译工具的路径,此时就须要环境变量设置.比如我的mips-linux-gcc编译器在"/opt/au1200_rm/build_tools/bin& ...

  8. Linux下环境变量设置

    分类 Linux下的环境变量按生存周期来划分,可以划分为两种: 1)永久的:需要修改配置文件, 变量永久生效 2)临时的:直接在终端使用export命令声明即可,但是关闭shell后失效. 设置方法 ...

  9. Linux Unix 环境变量设置实例

    背景 从第一次写Hello World我们便开始接触环境变量.这最基础的系统设置是必须要掌握的,尤其在是Linux/Unix系统中.比如,哪天某个Java进程出现问题,我们想分析一下其线程堆栈,却发现 ...

随机推荐

  1. codevs 1139 观光公交

    #include<cstdio> #include<cstdlib> #include<cstring> #define max(a,b) (a > b ? ...

  2. Spring mvc 中有关 Shiro 1.2.3 配置问题

    Spring 版本:3.2.x,  4.0.x [问题说明] 首先介绍下配置出错情况: (1)项目中,Spring3 and Spring4 的 applicationContext.xml aop ...

  3. 2.2.5 NIO.2 Path 和 Java 已有的 File 类

    NIO与IO交互 toPath() File -- Path toFile() Path -- File Demo: import java.io.File; import java.nio.file ...

  4. php 面向对象编程实例 __construct 和 __destruct 区别

    大多数类都有一种称为构造函数的特殊方法.当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方 法.构 造函数的声明与其它操作的声明一样,只是其名称必须是_ ...

  5. [Python笔记]第九篇:re正则表达式

    一.正则表达式基础 1.正则表达式介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分 ...

  6. 文成小盆友python-num7 -常用模块补充 ,python 牛逼的面相对象

    本篇内容: 常用模块的补充 python面相对象 一.常用模块补充 1.configparser模块 configparser 用于处理特定格式的文件,起内部是调用open()来实现的,他的使用场景是 ...

  7. C语言初学 数组 打印菱形

    #include<stdio.h> #include<stdlib.h> int main() { int n,i,j; printf("---开始打印符号--\n& ...

  8. B题(覆盖问题)

        B - B   Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Desc ...

  9. HTML邮件注意事项

    1.全局规则之一,不要写<style>标签.不要写class,所有CSS都用style属性,什么元素需要什么样式就用style写内联的CSS. 2.全局规则之二,少用图片,邮箱不会过滤你的 ...

  10. 嵌入式linux加载引导内核和根文件系统的方法

    总体来说,嵌入式Linux内核和根文件的引导与PC机差不多.嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我 们将内核和根文件系统直接烧入到Flash中(包括NOR和NAN ...