我是一个红帽盒子,我注意到,如果我不小心在没有dir
的情况下输入了一个cd
路径,我就会得到一个/path/to/dir/: Permission denied.
;但是,我希望它是/path/to/dir/: Command not found
。就像我输入无稽之谈一样:
$ sldkfjsd
sldkfjsd: Command not found.
这有什么意义?如果我以超级用户的身份运行dir
命令(我没有sudo
访问权限),会发生什么?
发布于 2013-02-20 17:33:13
这是一个拒绝的权限,因为您没有以这种方式执行目录的权限。通常,当您只是在CLI上输入某个文件的名称而没有任何其他内容时,这意味着您想要执行它。但是对于目录,execute权限有不同的含义,这就是为什么您没有执行它的权限。
实际上,执行目录通常是列出它的文件索引所必需的,但是您不能像二进制可执行文件那样运行它。
f.e.有一个名为/bin/ls
的可执行文件,所以如果在CLI上输入/bin/ls
,它将调用可执行文件并运行它。现在,如果您只尝试输入/bin
(目录),那么Bash将执行同样的操作,并尝试像一个可执行文件一样调用它,但是您没有权限像一个可执行文件那样执行它,因为它是一个目录。
发布于 2013-02-20 19:05:09
同样,如果您试图运行一个PNG映像,或任何其他没有意义的运行,这是不允许的。在文件的情况下,文件可以通过权限位来执行,因为它可能包含程序(实际上,所有命令都是包含机器代码和可执行文件的常规文件)。运行目录或硬盘是没有意义的。因此没有许可。
https://unix.stackexchange.com/questions/65551
复制相似问题