奇怪的行为与执行权限

对于练习 – 我从/ bin / pwd中删除了对他人的执行权限

$ chmod ox /bin/pwd $ ls -l /bin/pwd -rwxr--r-- 1 root root 26568 Apr 28 2010 /bin/pwd 

和logging为马特我不能执行/ bin / pwd按预期:

 $ /bin/pwd $ -bash: /bin/pwd: Permission denied 

但如果不是绝对的,它可以突然执行:

 $ pwd /home/matt 

为什么? 谢谢!

pwd是内置的shell。 你可以看到

 $ type pwd pwd is a shell builtin 

pwd是大多数shell中的内置函数。 其中一个原因是,这是一个非常简单的命令,使用相当频繁(运行内置比产生外部进程更快)。 另一个原因是它允许shell跟踪符号链接,以便cd /foo/bar; pwd cd /foo/bar; pwd显示/foo/bar即使bar是符号的/wibble (在bash和许多其他shell中,可以使用pwd -P来显示/foo/barpwd -L来显示/wibble ;默认是由-o physical选项)。