Permissions
ls -la 中的“s”和“S”有什麼區別?
當 I 時
ls -la
,它會列印許多屬性。像這樣的東西:-rwSrwSr-- 1 www-data www-data 45 2012-01-04 05:17 README
可恥的是,我不得不承認我不知道每個屬性的確切含義。例如,
S
字元串中的 big 是什麼意思-rwSrwSr--
?下面是1
什麼?我大致了解其他人。
該
ls
命令的文件回答了這些問題。在大多數 unix 變體上,查找ls
手冊頁(man ls
或線上)。在 Linux 上,查找 Info 文件 (info ls
) 或線上。該字母
s
表示已設置setuid(或 setgid,取決於列)位。當執行檔是 setuid 時,它以擁有執行檔的使用者而不是呼叫程序的使用者身份執行。字母s
代替了字母x
。文件可能是 setuid 但不可執行;這由 表示S
,其中大寫S
警告您此設置可能是錯誤的,因為如果文件不可執行,setuid 位(幾乎總是)無用。當目錄具有 setuid(或 setgid)權限時,在該目錄中創建的任何文件都將歸與該目錄的所有者(或組)匹配的使用者(或組)所有。
權限後的數字是硬連結數。硬連結是文件的路徑(換句話說,是一個名稱)。大多數文件只有一個路徑,但您可以使用該
ln
命令創建更多路徑。(這與符號連結不同:符號連結說“哦,實際上,這個文件在別處,轉到 <location>”。)目錄有 N+2 個硬連結,其中 N 是子目錄的數量,因為它們可以被訪問來自他們的父目錄、來自他們自己(通過.
條目)和來自每個子目錄(通過..
條目)。