Linux系列之————错误提示sudo: mongod: command not found

问题:今天想给mongodb配置环境变量,出现一个很尴尬的地方

编辑用户级配置文件   vim  ~/.bashrc

添加配置信息: export PATH=/usr/local/mongodb/mongodb-3.6.5/bin:$PATH    (中间那部分就是你的安装目录下的bin)

保存退出,刷新:source ~/.bashrc

我们输入mongo,显示版本信息,说明配置环境变量成功(现在还没开启服务器所以连接失败)

          按道理,这样就可以了,于是输入sudo mongod --config /usr/local/mongodb/mongodb-3.6.5/etc/mongodb.conf,开启服务器

        但是出现了下面的问题(sudo: mongod: command not found)!!!

        如果没有sudo,也不行,mongodb这个命令需要超级用户身份运行

查看一下搜索路径

我们发现是在搜索路径path下的,问题就出在sudo上!

其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,但却使得sudo搜索的路径不是我们想要的PATH变量的路径,当然就找不到我们想要的命令了

解决:

     方式一:往sudo默认搜索路径中添加我们需要的命令

           (1)复制你bin路径

           (2)执行sudo visudo,将你的路径添加到secure_path

     方式二:

           (1)执行sudo vim ~/.bashrc

                  在.bashrc中最后添加alias sudo='sudo env PATH=$PATH'

                  source ~/.bashrc

           (2)执行sudo visudo

                  将Defaults     env_reset改成Defaults    !env_reset

                  表示取消重置,仍然使用echo $PATH 显示的搜索路径

                  保存退出

参考:http://www.cnblogs.com/A-Song/archive/2013/03/09/2951951.html

猜你喜欢

转载自blog.csdn.net/qq_39148947/article/details/82462454