执行sudo命令时command not found的解决办法

问题的原因: 在编译sudo包的时候默认开启了- -with-secure-path选项。

方法1: sudo vim /etc/sudoers,并在文件内增加这么一行:Defaults secure_path=”/bin:/usr/bin:/usr/local/bin:…”, 把要用的命令path包括进去。

在非root下,可以执行很多命令。

在root命令下,却提示 command not found。例如 使用vim

现象: 当我们用sudo来执行cd、ls等命令时,会出现command not found的提示  在执行Linux命令时,如果在其前面加上sudo,就表示以root权限执行。但是这其实是有一个前提的,就是只有那些Linux内置系统命令才可以用如此的形式来执行,而对于Shell内置命令或其他用户自定义命令、别名等,是不能用sudo来使用root权限的。为什么呢?详细说一下sudo幕后隐藏的过程才能明白。

因为当在Linux下用sudo执行某一命令时,是在原进程(parent process)的基础上fork出来一个子进程(child process),这个子进程是以root权限执行的。然后在子进程中,执行你在sudo后面跟的命令。

在子进程中是无法调用涉及到父进程的状态的一些命令的,所以非系统内置命令会被拒绝。这就是为什么会出现command not found的提示。

时间: 2024-08-24 08:15:06

执行sudo命令时command not found的解决办法的相关文章

eclipse运行 Maven Test命令时控制台输出乱码的解决办法

在Maven的pom.xml文件中增加: <properties>      <argLine>-Dfile.encoding=UTF-8</argLine> </properties> 今天突然遇到这个问题了,上网搜了一下,答案一大堆,还是这个最好!记录一下! eclipse运行 Maven Test命令时控制台输出乱码的解决办法,布布扣,bubuko.com

执行sudo命令时的提示语,如何修改?

如图所示,执行sudo命令,提示语(有中文和英文两个版本): 上面的提示内容是sudo软件原生的内容. 使用下面的方法,有的时候是可行的.sudo -p '提示语' 命令 如果要修改sudo软件原生的提示内容,只有重新编译软件. 屏蔽提示的方法:https://superuser.com/questions/500119/keeping-the-fancy-sudo-warning-forever Create a file inside /etc/sudoers.d/ You can use

iOS 通知代理执行代理方式时,代理为nil的解决办法

1.下面代码是描述: 点击Toolbar上的按钮时,通知代理去调代理方法. 1 - (void)didClickedToolbarBtn:(UIButton *)button 2 { 3 4 if ([self.delegate respondsToSelector:@selector(toolbar:didClickedButton:)]) { 5 [self.delegate toolbar:self didClickedButton:button.tag]; 6 } 7 self.sele

linux中没有tree命令,command not found,解决办法

在有网络的情况下: 1.包管理器安装 centos 中用  yum -y install tree ubuntu 中用  apt-get install tree 当然如果需要权限不要忘了在前面加上 sudo 2.源码编译安装 wget ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz tar xzvf tree-1.6.0.tgz cd tree-1.6.0 make && make install 最后可以  cp tree /bin

C# Serialport执行close()方法时,程序卡死的解决办法

根据网上搜到的文章,程序中添加两个bool变量,作为状态标记,保证串口关闭时,串口事件已处理完 private volatile bool is_serial_listening = false;//串口正在监听标记private volatile bool is_serial_closing = false;//串口正在关闭标记 //Program Begins using System;using System.Collections.Generic;using System.Compone

不输入密码执行sudo 命令

命令行执行的crontab 命令,但是需要包含sudo 才可以执行的命令,怎么办呢?见下: [email protected]:/etc$ visudovisudo: /etc/sudoers: 权限不够visudo: /etc/sudoers: 权限不够[email protected]:/etc$ sudo visudo ## This file MUST be edited with the 'visudo' command as root.## Please consider addin

ssh执行sudo命令所遇到的错误解决

ssh 执行sudo 命令 遇到错误 ssh [email protected] "sudo CMD" 错误一:sudo: sorry, you must have a tty to run sudo 解决方式一: ssh 加 -t 参数 即:ssh -t [email protected] "sudo CMD" 解决方式二: 在/etc/sudoers 配置文件中注释Defaults    requiretty这行(这样有缺点,如果ssh带密码会在进程中显示) 错

FW 执行Git命令时出现各种 SSL certificate problem 的解决办法

比如我在windows下用Git clone gitURL 就提示  SSL certificate problem: self signed certificate 这种问题,在windows下出现得频率高些.我估计主要是git本身就是基于linux开发的,在windows上,容易缺失一些环境. 参考了一些文章,解决方法其实就是“直接不管ssl证书的事儿”-_-||| 方法如下: 1.创建临时环境变量: windows上命令行输入: [plain] view plain copy set GI

转载:Linux下执行SVN命令时提示错误:Valid UTF-8 data

在Linux下执行svn add *时出现如下错误: svn:  Valid UTF-8  data(hex: 4b)followed by invalid UTF-8 sequence(hex:  fc 63 68  65) 出现这个错误是因为svn库里有文件的名字不是utf-8编码的,这种情况对于中文来说很常见.比如在自己的windows上建了一个中文名字的文件,就会使这种情况. 几经周折,才找到解决办法: 首先,执行命令: ls * | file -/dev/stdin:  ISO-885