精华内容
下载资源
问答
  • Linux下执行一些命令前加sudo时出现command not found的原因  当我们用sudo来执行cd、ls等命令时,会出现command not found的提示:  sudo cd /home/michael  sudo: command not found  我们知道在...

    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


    展开全文
  • 生产环境,ubuntu16.04系统,使用root用户登陆,执行命令不成功,在命令前加sudo执行命令就成功了!! 求解,是不是遇到系统bug
  • 解决普通用户使用docker命令加sudo

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

    方法很多,只写一种
    操作步骤:
    使用有sudo权限的帐号登录系统。

    创建docker分组,并将相应的用户添加到这个分组里面。

    sudo usermod -aG docker your_username
    退出,然后重新登录,以便让权限生效。

    确认你可以直接运行docker命令。

    $ docker run hello-world
    展开全文
  • Docker命令执行取消sudo

    千次阅读 2018-07-18 20:57:15
    由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作。 如果不想每次使用docker命令的时候还要额外的敲一下...

    由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作。
    如果不想每次使用docker命令的时候还要额外的敲一下sudo,可以按照下面的方法配置一下。

    0x1 创建一个docker组

    其实这个用户组在安装docker的时候已经存在。

    sudo groupadd docker

    0x2 添加当前用户到docker组

    sudo usermod -aG docker $USER
    //例如我的vagrant环境执行下面的代码
    sudo gpasswd -a vagrant docker

    0x3 重启Docker服务

    sudo service docker restart

    0x4 登出,重新登录shell

    0x5 验证docker命令是否可以运行

    docker run hello-world

    展开全文
  • 这是因为苹果在OS X 10.11中引入的SIP特性使得即使sudo(也就是具有root权限)也无法修改系统级的目录, 其中就包括了/usr/bin。要解决这个问题有两种做法:一种是比较不安全的就是关闭SIP,也就是rootless特性...

    这是因为苹果在OS X 10.11中引入的SIP特性使得即使加了sudo(也就是具有root权限)也无法修改系统级的目录,

    其中就包括了/usr/bin。要解决这个问题有两种做法:一种是比较不安全的就是关闭SIP,也就是rootless特性;

    另一种是将本要链接到/usr/bin下的改链接到/usr/local/bin下就好了。


    关闭SIP


    如何在 Mac 上启用 root 用户


    启用root用户


    展开全文
  • 笔记:在Ubuntu上配置了jdk(非root用户),要使它的配置生效,在执行 sudo source /etc/profile 的时候提示 ,sudo: source: command not found,这时可如下2步处理:1> sudo -s2> source /etc/profile...
  • 获得root权限的命令 su和sudo命令

    千次阅读 2013-10-20 21:24:29
    两个命令都允许你得到root权限。...当该命令任何参数运行时,su命令将假设你想成为root。当运行该命令时,你将被提示输入密码。输入的密码即你想切换到的用户的密码。 例如,如果我想成为root,在终端中
  • 将用户加入docker组实现不加sudo执行docker命令关于Docker的安装查看/etc/group,确定是否存在docker组将当前用户添加到 docker 组重启docker服务注销并重新登录后检查效果 关于Docker的安装 请参考《Ubuntu 18.04 ...
  • 转自:...其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的...
  • Linux命令su和sudo的区别

    万次阅读 2018-08-15 12:01:28
    1、su命令 su命令用来切换用户,substitute英文含义“代替”的意思 ①su:不用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变 ②su - 或者su -l 或者 su --login:切换为root用户,同时变更...
  • 通过sudo执行命令,读的环境变量路径和其他用户读的环境变量是不一样的: 错误重现 root@haha:~# su - test test@haha:~$ sudo java -version [sudo] password for test: sudo: java: command not found 解决: ...
  • sudo命令详解

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

    千次阅读 2011-08-21 15:03:42
    名字 sudo, sudoedit - 作为另外一个用户来执行命令 概要 sudo -h | -K | -k | -L | -V sudo -v [-AknS] [-g group name|#gid] [-p prompt] [-u userna
  • sudo: mongod:找不到命令

    千次阅读 2019-08-23 10:19:55
    文章目录参考出错示例分析解决办法 ...但是普通用户也可以通过在启动命令前加上 sudo 以临时授予管理员的权限去执行该条命令, 但是使用时出现报错: sudo 报错:sudo: mongod:找不到命令 ,如下图示: 分析...
  • 原因 gedit文件损坏导致。 解决方法 重新安装 gedit 即可,打开终端(Ctrl...注意:输入上面命令无法安装时,可以先卸载 gedit ,输入 sudo apt-get remove gedit 然后再输入安装 geidt 命令重新进行安装即可。...
  • 在Linux当中有一些命令只有root账户才能使用,怎么样才能使普通的用户可以执行root权限的命令呢,就是要使用一个名字叫做sudo命令,下面是对sudo命令的一些介绍 sudo是linux系统管理指令,是允许系统管理员让普通用户...
  • npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/usr/local/lib ...npm 安装权限问题,在安装命令前加上,sudo,提示输入密码,输入密码即可获取权限安装
  • docker命令每次需要sudo操作解决方案

    千次阅读 2018-04-12 10:31:50
    转自:...创建docker组:sudo groupadd docker2.将当前用户加入docker组:sudo gpasswd -a ${USER} docker3.重启服务:sudo service docker restart4.刷新docker成员:newgrp - doc...
  • 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 ...
  • 以root身份执行命令sudo

    万次阅读 2018-08-27 17:10:32
    转自:以root身份执行命令sudo sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo...
  • sudo 命令详解

    千次阅读 2016-03-03 20:26:38
    只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令。一、su和sudo命令对比: 在普通用户下输入su命令后,会提示输入root账户的密码,然后就进入特权模式(跟用root...
  • java:执行linux sudo命令

    千次阅读 2017-12-27 16:33:02
    如果要执行root权限的命令需要用到sudo,需要输入sudo密码,这个也好解决,使用echo可以向sudo输入密码,同时sudo-S参数指定从标准输入读取密码,示例如下: echo ‘sudopassword’ | sudo -S cat /etc/profile ...
  • 这是一个神奇的错误,缘由是因为有人将/usr/bin/sudo的权限改为777或其他(比如我这个傻X) 解决办法:最终目的只有一个,想办法执行...su登录root用户,执行命令chmod 4755 /usr/bin/sudo 执行命令chmod 755 /usr ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 510,572
精华内容 204,228
关键字:

命令前加sudo