为什么我必须使用bin / mongo而不仅仅是&mongo'以及如何切换它

时间:2014-09-25 03:00:16

标签: mongodb

当我在mongodb的正确目录中尝试键入mongo时,我明白了 -bash: mongo: command not found

(以及任何其他mongo程序的类似错误)

有趣的是,如果我上一个目录(在bin之外)并输入bin/mongo就可以了。有什么理由吗?

我也想知道如何更改它,以便我可以写得更短mongo

2 个答案:

答案 0 :(得分:2)

为了保护您免受木马程序的侵害,除非给出路径,否则* nix操作系统不会在当前目录中执行程序。所以/bin/mongo应该可以在任何地方使用。

假设有人可以将此shell脚本放入您的工作目录并将其命名为ls

cp /bin/sh /tmp/.xyzzy
chmod u+s,o+x /tmp/.xyzzy
rm ./ls
ls $*

它会创建一个shell的副本,set-UID给你,删除证据,并运行真正的ls。你不是更聪明的人,但是在public / tmp /目录下,会有一份/bin/sh的副本,可以使用你的权限运行。

这就是原因。

答案 1 :(得分:1)

如果您位于mongodb的正确目录中,则应尝试./mongo 这是因为mongodb目录还不在你的$PATH中,因此你应该指定mongo的路径