当我在mongodb的正确目录中尝试键入mongo
时,我明白了
-bash: mongo: command not found
(以及任何其他mongo程序的类似错误)
有趣的是,如果我上一个目录(在bin之外)并输入bin/mongo
就可以了。有什么理由吗?
我也想知道如何更改它,以便我可以写得更短mongo
答案 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的路径