文档章节

Linux sudo找不到命令的解决办法

SoneWinstone
 SoneWinstone
发布于 2016/11/13 20:06
字数 814
阅读 107
收藏 0

解决办法

 

1.编辑/etc/sudoers文件,把Defaults  env_reset改成Defaults ! env_reset

 

2.编辑.bashrc,最后添加alias sudo='sudo env PATH=$PATH'

 

有些技术真的很麻烦,但却有很长的生命,虽然学习的时候会遇到很多问题,但是在这些上面花时间是值得的。

 

下面是我装 texlive 2012的时候遇到的一些问题。还有关于Linux环境变量的一些设置问题

 

 

我还要说有些东西真的很麻烦,但是却有很多人为它着迷。有些软件已经生长为一种系统。这个系统像有生命的生物一样在不断的生长。对于明白他的人,他是那样的善解人意,对于不理解他的人他像一架精巧的难以驾驽的的机器。我所知道的这些系统有, linux,tex,emacs,drupal等等

 

在linux mint 13上装最新版本的texlive 2012,就不能用 apt-get install,因为太新了还没有加到软件仓库里,只能用官网上面提供的安装包安装了,装完后,可以用 tlmgr -gui对 tex的各种宏包进行管理。

 

手动添加texlive的各种程序到 PATH 环境变量下,就可以在终端执行 tex xelatex等命令了,当然了程序还让你添加man目录和info目录到  MANPATH和INFOPATH下

 

只因我将texlive装在了 /usr/local/texlive这个默认的文件夹下,所以进行宏包管理的时候,前面就必须用加上"sudo"才能对那个文件夹进行写操作(当然了和也可以为这个目录添加写权限),但是当运行 sudo tlmgr -gui命令时却提示“找不到此命令”,这时大部分人都会一脸的迷惑,不对呀我已经将

bin/i386-linux这个路径添加到PATH环境变量里了呀。用echo $PATH输出可以看见呀,单独运行 tlmgr命令也是可以的呀。

 

不知道有多少人遇到这种 加上 sudo 找不命令的情况,怎么办呢,谢天谢天我们有google,百度不知道的google一定知道。

 

很多人就可以病急乱投医了,一会在 /etc/profile修改修改,一会在/etc/environment修改,~/.bashrc 修改了好多地方还是不行。网上也有些人是瞎指挥,帮倒忙。出现这种情况就是因为对linux了解不深的原因。不过网上总是有热心的高人的。

 

其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,以防用户执行可引起灾难性的程序。

 

这个配置信息存储在了/etc/sudoers这个文件是,当指行sudo命令的时候系统寻找的是 secure_path下的目录,所有在 /etc/profile ~/.bashrc下对PATH做的配置都会被忽略。所以就出现加上 sudo xxx 找不到命令的情况,解决办法用很多种了,可以将要执行sudo的命令软链接到 secure_path的目录下,或者修改 secure_path变量。

本文转载自:http://blog.csdn.net/duguduchong/article/details/8804117

共有 人打赏支持
SoneWinstone
粉丝 1
博文 17
码字总数 3992
作品 0
兰州
私信 提问
如何恢复linux的环境变量ubuntu中root用户没有办法使用命令

问题分析及解决办法: 这主要是路径问题,先查看$PATH变量的设置。 echo $PATH 里面的格式是xxx:xxx:xxx:xxx 这应该没包含/usr/bin这个路径。 执行下面命令就可以将这个路径包含进去: expo...

天下杰论
2013/03/19
0
0
Ubuntu 14.04 LTS 安装Oracle 11GR2

Ubuntu 14.04 LTS 安装Oracle 11GR2 ,经过几天的研究以及参考网上的说明,终于安装成功了 1.将系统更新到最新: sudo apt-get update sudo apt-get dist-upgrade 2.如果使用的Ubuntu不是桌面...

xiaoxin
2014/06/13
0
1
???????????? no permissions的解决办法!!!

使用adb devices 出现如下: List of devices attached ???????????? no permissions 同时在DDMS中显示设备名也显示????????????,也无法显示进程名,无法查看log。 解决方法: 1、设置usb权...

垂盆草
2012/08/18
0
0
ubuntu下ltib安装问题(解决)

ubuntu 下ltib 安装问题 OS: Ubuntu 12.04 ltib安装包:Freescale iMX6/L3.0.354.1.0130816_source.tar.gz 第一次执行./ltib 显示未安装的软件包 *** zlib 0 not installedzlib-devel 0 not......

mjrao
2015/01/15
0
0
ubuntu.sh: 113: ubuntu.sh: Syntax error: "(" unexpected

在ubuntu电脑上安装lnmp环境,执行下面命令时 sudo sh ubuntu.sh 报错误:ubuntu.sh: 113: ubuntu.sh: Syntax error: "(" unexpected 原因: 兼容性问题,因为linux将sh默认指向了dash,而不...

guojianrui
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cmake 编译脚本

#!/bin/sh test -d build || mkdir -p build cd build cmake .. make

shzwork
6分钟前
0
0
数据表引擎

InnoDB表引擎 默认事务性引擎 数据存储在共享表空间,可以通过配置分开 对主键查询的性能高于其它引擎 从磁盘读取数据时自动在内存构建hash索引,插入数据时自动构建插入缓冲区 通过一些机制和...

关元
7分钟前
0
0
从零开始实现Vue简单的Toast插件

概述: 在前端项目中,有时会需要通知、提示一些信息给用户,尤其是在后台系统中,操作的正确与否,都需要给与用户一些信息。 1. 实例 在Vue组件的methods内,调用如下代码 `this``.$toast({...

前端小攻略
10分钟前
0
0
yaf和yaconf

pecl install yafpecl install yaconf [yaf] yaf.environ = dev yaf.use_spl_autoload = On yaf.use_namespace = 1 [yaconf] yaconf.directory = /data/wwwroot/yaconf......

果树啊
11分钟前
0
0
day01:shell基础(shell基础、alias及重定向)

1、shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都有自己特定的shell:Centos7的shell是bash(bourne agin shell): shel...

芬野de博客
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部