精华内容
下载资源
问答
  • 2016-01-26 15:44:18

    Linux下执行一些命令前加sudo时出现command not found的原因


     当我们用sudo来执行cd、ls等命令时,会出现command not found的提示:

       sudo cd /home/michael  
       sudo: command not found  


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


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


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

       sudo cd /home/michael  


       所在这个shell进程中(称其为PP,表示parent process)fork出一个子进程(称其为CP,表示child process),那么在CP中是无法改变PP的所在目录的。

       sudo ls /home/michael  


       sudo后由PP产生了CP,CP是无法获取PP所在的目录的内容的(具体来说,是读取该目录的block data,可详见《柳大的Linux游记·基础篇(2)Linux文件系统的inode》一文)。

    转载http://www.cfanz.cn/?c=article&a=read&id=98765


    更多相关内容
  • linux sudo命令工具安装

    千次阅读 2022-01-22 16:31:43
    sudo command is used to execute command as another user. This is generally used to run command as root. In some cases we can get an error like -bash:sudo:command not found which means sudo is not ...

    sudo  command is used to execute command as another user. This is generally used to run command as root. In some cases we can get an error like -bash:sudo:command not found which means sudo is not installed. In this tutorial we will look different ways and distributions to solve this problem.

    sudo命令用于以另一个用户身份执行命令。 通常用于以root身份运行命令。 在某些情况下,我们会收到-bash:sudo:command not found类的错误,这意味着未安装sudo 。 在本教程中,我们将探讨解决此问题的不同方式和分布。

    为Debian,Ubuntu,Mint,Kali安装Sudo (Install Sudo For Debian, Ubuntu, Mint, Kali)
    We can install sudo for Debian, Ubuntu, Mint and Kali related distributions for deb or apt with the following command. But before we should be root user because package installation requires root privileges.

    我们可以安装sudo适用于Debian,Ubuntu的,薄荷和卡利相关发行deb或apt使用下面的命令。 但是在我们应该是root用户之前,因为软件包安装需要root特权。

    $ su
    $ apt install sudo

    为CentOS,Fedora,RHEL安装Sudo (Install Sudo For CentOS, Fedora, RHEL)
    We can install sudo for CentOS, Fedora and RHEL related distributions for rpm or yum with the following command. But before we should be root user because package installation requires root privileges.

    我们可以使用以下命令为rpm或yum安装与CentOS,Fedora和RHEL相关的发行版的sudo 。 但是在我们应该成为root用户之前,因为软件包安装需要root特权。

    $ su
    $ yum install sudo

    添加用户Sudoers配置文件 (Add User Sudoers Configuration File)
    sudo command provides fast way to change root user. But this is done with a configuration file locate /etc/sudoers . sudoers file contains users and their ability to run sudo command. Most of the distributions automatically adds user to this file but in some cases this may fail. We can add following line to make user able to run sudo . In this example we will use user name ismail

    sudo命令提供了更改root用户的快速方法。 但这是通过配置文件locate /etc/sudoers 。 sudoers文件包含用户及其运行sudo命令的能力。 大多数发行版会自动将用户添加到该文件,但是在某些情况下,这可能会失败。 我们可以添加以下行以使用户能够运行sudo 。 在此示例中,我们将使用用户名ismail

    ismail        ALL=(ALL)  ALL

    成为另一个用户 (Become Another User)
    While using sudo if we need to change user other than root we should provide the user name after the sudo command . In this example we will change to the user ali

    在使用sudo时,如果需要更改root用户以外的其他用户,则应在sudo命令后提供用户名。 在此示例中,我们将更改为用户ali

    $ sudo ali

    展开全文
  • sudo 与 su 两个命令的最大区别是: sudo 命令需要输入当前用户的密码, su 命令需要输入 root 用户的密码。 另外一个区别是其默认行为。 sudo 命令只允许使用提升的权限运行单个命令, 而 su 命令会启动一个新的 ...

    sudo 与 su 两个命令的最大区别是:

    sudo 命令需要输入当前用户的密码,
    su 命令需要输入 root 用户的密码。
    另外一个区别是其默认行为。
    sudo 命令只允许使用提升的权限运行单个命令,
    而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。
    在这里插入图片描述
    su 用以切换成不同的用户的身份
    在这里插入图片描述
    默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的。切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以"-"不能省略,不然有些操作无法执行。

    su root 输入root密码后切换之root用户但是pwd目录不变
    在这里插入图片描述
    su - root 输入root密码后切换之root用户但是pwd目录/root
    在这里插入图片描述
    #sudo 一般加的是命令
    sudo -i root与sudo - root、sudo -i ,sudo - ,

    sudo root效果相同 提示输入密码时该密码为当前账户的密码 要求执行该命令的用户

    展开全文
  • 普通用户执行sudo命令方法

    千次阅读 2015-11-18 09:58:40
    xxx is not in the sudoers file.This incident will be reported.的解决方法 1.切换到root用户下,怎么...2.添加sudo文件的写权限,命令是: chmod u+w /etc/sudoers 3.编辑sudoers文件 vi /etc/sudoers 找到这行 ro

    xxx is not in the sudoers file.This incident will be reported.的解决方法

    1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去.

    2.添加sudo文件的写权限,命令是:
    chmod u+w /etc/sudoers

    3.编辑sudoers文件
    vi /etc/sudoers
    找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)

    ps:这里说下你可以sudoers添加下面四行中任意一条
    youuser            ALL=(ALL)                ALL
    %youuser           ALL=(ALL)                ALL
    youuser            ALL=(ALL)                NOPASSWD: ALL
    %youuser           ALL=(ALL)                NOPASSWD: ALL

    第一行:允许用户youuser执行sudo命令(需要输入密码).
    第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
    第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
    第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.

    4.撤销sudoers文件写权限,命令:
    chmod u-w /etc/sudoers

    这样普通用户就可以使用sudo了.

    展开全文
  • python执行Linux命令sudo命令

    千次阅读 2021-12-10 09:32:48
    command:要执行的linux命令 ”“” password = '123123' command = 'cat /proc/cpuinfo' str = os.system('echo %s | sudo -S %s' % (password,command)) print(str) 方法二 import subproc
  • 最最详细sudo命令详解

    千次阅读 2021-09-22 14:42:25
    sudo允许一个被批准的用户以超级用户或者另外一个用户的身份去执行命令,执行该命令的真实用户id被用于确定查询安全策略的用户名 sudo提供了一个插件架构用于安全策略和输入输出日志,第三方可以开发和发布自己的...
  • sudo命令详解

    万次阅读 多人点赞 2019-02-19 09:48:16
    严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布...
  • su 命令sudo命令的区别

    千次阅读 2021-09-27 17:41:28
    sudo命令sudo为superuser do 的简写,即使用超级用户来执行命令,一般是指root用户。 2、用法不同: su命令:不用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变。 sudo命令: 查看当前用户...
  • Ubuntu中sudo命令

    千次阅读 2019-01-31 11:22:12
    对于其他Linux系统来说,一般在安 装过程就设定root密码,这样用户就能用它登录root帐户或使用su命令转换到超级用户身份。与之相反,Ubuntu默认安装时,并没有给root用 户设置口令,也没有启用root帐户。问题是要想...
  • Linux命令 sudo用法详解

    千次阅读 2021-05-10 08:52:21
    sudo 命令用来以其他身份来执行命令,Linux系统下的sudo命令主要是用来分配系统的权限,使用sudo命令可以提高普通用户的权限,来执行一些操作。预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其...
  • Linux权限命令sudo和chmod

    千次阅读 2021-03-24 21:10:07
    权限 权限值 作用 r-read 4 读取浏览目录下文件内容 w-write 2 修改目录下文件内容 x-excute 1 执行目录下文件 二、权限管理命令 1、sudo 对普通用户开放root管理员权限,比如文件的修改。 2、chmod 更改目录或文件...
  • 1.问题描述: 当出现以下错误: 2.解决方案: 执行以下命令: 切换到超级用户: ...最后一行加入:alias sudo=‘sudo env PATH=$PATH’ 保存退出,重启一下系统 参考https://blog.csdn.net/run_mo/
  • sudo make 找不到命令

    千次阅读 2021-08-20 10:23:29
    (1)sudo apt update (2)sudo apt-get install make (3)sudo make
  • sudo命令失败及解决办法

    千次阅读 2020-04-27 10:55:26
    一、普通用户使用sudo命令失败 以我的用户ly为例,报错信息:ly不在 sudoers 文件中。此事将被报告。 二、原因:当前操作用户的权限不足 该用户没有被加入到/etc/sudoers.d 文件中。 root用户只有在权限分配及系统...
  • 解决普通用户使用docker命令加sudo

    万次阅读 2018-03-31 21:32:36
    方法很多,只写一种 操作步骤: 使用有sudo权限的帐号登录系统。 创建docker分组,并将相应的用户添加到这个分组里面。 sudo usermod -aG docker...确认你可以直接运行docker命令。 $ docker run hello-world...
  • sudo: vim:找不到命令

    千次阅读 2022-03-02 16:32:13
    是因为没有下载vim,进行下载即可。 命令sudo apt-get install vim
  • sudo命令免密码 sudo免密码

    千次阅读 2021-02-05 21:03:23
    sudo命令免密码 sudo面密码 云服务上的普通用户可以免密码使用sudo,而我们的却不行,看来得配置一下,在网上查了资料有了答案,分享一下 虽然这样有安全隐患,但是我们只是个人用户,不是几个人共用一个系统,每次...
  • sudo: mongod:找不到命令

    千次阅读 2019-08-23 10:19:55
    文章目录参考出错示例分析解决办法 ...但是普通用户也可以通过在启动命令前加上 sudo 以临时授予管理员的权限去执行该条命令, 但是使用时出现报错: sudo 报错:sudo: mongod:找不到命令 ,如下图示: 分析...
  • sudo 命令无法使用

    千次阅读 2019-04-11 19:09:41
    1. 不能使用sudo命令解决方法: 想查看这个用户可以使用哪些sudo命令,输入正确密码却不能查看,原因就是在/etc/sudoers中未添加该用户。 [xm@oracle ~]$ sudo -l [sudo] password for xm: Sorry, user xm may not ...
  • linux中sudo命令sudo or superuser do is a utility used on Linux, BSD, and Unix systems that provides the running command with root or Administrator privileges. Not every user needs to have root ...
  • 转自:...其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的...
  • Linux命令学习系列-用户切换su,sudo

    千次阅读 2022-01-24 13:19:01
    用户切换相关命令 为什么要进行用户切换?...su命令参数,默认切到root用户,需要输入root用户密码进行验证, exit命令可退出root用户。 su命令可以加一个“-”再加上用户名,此时,不但...
  • 问题命令 sudo apt install XXX sudo apt-get install XXX 报错为未找到apt命令,这种情况一般是我们误删了apt这种基础包,需要从新下载安装 解决方案 下载apt资源包,资源网站:...
  • 以cmake为例 首先使用find / -name cmake 一般找以bin目录的,然后将/usr/local/bin拷贝,打开/etc/sudoers 在后面加上/usr/local/bin,保存退出即可。
  • sudo找不到命令错误解决

    千次阅读 2019-08-02 20:38:29
    摘要sudo找不到命令错误解决方法 1.修改sudoers文件 vim /etc/sudoers vim /etc/sudoers 将其中Defaults env_reset改成Defaults !env_reset(取消掉对...
  • Linux命令su和sudo的区别

    万次阅读 多人点赞 2018-08-15 12:01:28
    1、su命令 su命令用来切换用户,substitute英文含义“代替”的意思 ①su:不用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变 ②su - 或者su -l 或者 su --login:切换为root用户,同时变更...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 604,337
精华内容 241,734
关键字:

命令前加sudo