Ubuntu 下普通用户安装的指令用 sudo 执行提示找不到

705 阅读1分钟

问题

  • Ubuntu 下使用未使用 sudo 安装的指令,当需要一些高权限操作的时候,加上 sudo 后提示指令不存在。例如普通用户下安装 node 版本管理工具 n 后,通过 n 安装多版本的 node 时,会提示权限不够,但是加上 sudo 后,又提示指令 n 找不到。

原因

  • sudo 默认的配置文件下指定了三个命令位置
    Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
    

方法

  • 查看指令位置
    which n
    // 得到结果 /home/linuxbrew/.linuxbrew/bin/n
    
  • 将指令 lnsudo
    sudo ln -s /home/linuxbrew/.linuxbrew/bin/n /usr/bin/n
    
  • 此时运行 sudo n 就可以正常执行了,当然,直接用绝对路径运行也可以( sudo /home/linuxbrew/.linuxbrew/bin/n )

如有错漏之处,敬请指正