执行权限的奇怪行为

执行权限的奇怪行为

为了练习 - 我从 /bin/pwd 中删除了其他人的执行权限:

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

并且正如 matt 所记录的,我无法按预期执行/bin/pwd:

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

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

$ pwd
/home/matt

为什么要谢你!

答案1

pwd是内置的 shell。你可以通过

$ type pwd
pwd is a shell builtin

pwd是大多数 shell 中的内置命令。其中一个原因是它是一个非常简单的命令,使用频率相当高(并且运行内置命令比生成外部进程更快)。另一个原因是它允许 shell 跟踪符号链接,因此即使是符号 to ,也会cd /foo/bar; pwd显示(在 bash 和许多其他 shell 中,您可以使用to show和to show ;默认值由选项控制)。/foo/barbar/wibblepwd -P/foo/barpwd -L/wibble-o physical

相关内容