Linux Linux系统使用sudo遇到command not found的情况处理

Linux系统使用sudo遇到command not found的情况处理

一般通过编译安装或二进制拷贝的软件路径会选择自定义路径,以nodejs软件为例,如:/usr/local/node6.10/bin。这个时候在使用sudo命令运行的时候会提示command not found。出现这个问题的原因是/etc/sudoers配置文件中有这么一个配置:79Defaultssecure_path=/sbin:/bin:/usr...

    一般通过编译安装或二进制拷贝的软件路径会选择自定义路径,以nodejs软件为例,如:/usr/local/node6.10/bin。这个时候在使用sudo命令运行的时候会提示command not found。出现这个问题的原因是/etc/sudoers配置文件中有这么一个配置:

 79 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

    由此可知,默认路径里面是没有我们自定义安装软件的路径的,所以node这个命令是找不到的。我们只需要将node的路径添加到这个一行后面即可。

 79 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/node6.10/bin

另外还有几个解决办法:

    1): 用命令的绝对路径。

    2): 使用sudo的env选项,像这样sudo env PATH=$PATH cmd.sh。

    3): 把脚本拷贝或链接到系统$PATH中。

   4): 重新编译sudo,不带–with-secure-path选项了.(终极解决办法)。

以上方法请自行参考是使用哪一种,我比较喜欢最开始介绍的那种,比较可控,使用起来也比较方便。


转载于:https://blog.51cto.com/nanfeibobo/2093809

Logo

更多推荐

  • 浏览量 4258
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献1条内容