Permissions

具有執行權限的奇怪行為

  • September 8, 2011

練習 - 我從 /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

為什麼?謝謝!

pwd是一個內置的shell。你可以看到

$ type pwd
pwd is a shell builtin

pwd是大多數 shell 中內置的。這樣做的一個原因是它是一個非常簡單的命令,使用頻率很高(執行內置程序比生成外部程序更快)。另一個原因是它允許 shell 跟踪符號連結,因此即使是符號連結也可以cd /foo/bar; pwd顯示(在 bash 和許多其他 shell 中,您可以使用to show和to show ;預設值由選項控制)。/foo/bar``bar``/wibble``pwd -P``/foo/bar``pwd -L``/wibble``-o physical

引用自:https://serverfault.com/questions/309550