Permissions

ls -la 中的“s”和“S”有什麼區別?

  • November 5, 2020

當 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 是子目錄的數量,因為它們可以被訪問來自他們的父目錄、來自他們自己(通過.條目)和來自每個子目錄(通過..條目)。

引用自:https://unix.stackexchange.com/questions/28363