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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

解决办法

 

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变量。

转载于:https://my.oschina.net/SoneWinstone/blog/787099

你可能感兴趣的:(Linux sudo找不到命令的解决办法)