Linux

FAT Mountoption allow_utime 解釋

  • September 26, 2014

我試圖弄清楚 (v)FAT 的以下 Mountoption 究竟做了什麼(在 Linux 中):

allow_utime=### – 此選項控制 mtime/atime 的權限檢查。

              20 - If current process is in group of file's group ID,
                   you can change timestamp.
               2 - Other users can change timestamp.

             The default is set from `dmask' option. (If the directory is
             writable, utime(2) is also allowed. I.e. ~dmask & 022)

             Normally utime(2) checks current process is owner of
             the file, or it has CAP_FOWNER capability.  But FAT
             filesystem doesn't have uid/gid on disk, so normal
             check is too unflexible. With this option you can
             relax it.

[來源]

問題這(上)是什麼意思?

嘗試查找它時,我以 C 程式碼結尾,這對我沒有多大幫助,所以目前這也沒有man 2 utime(如前所述)對我有太大幫助。我很想使用源

From utime: utime() 系統呼叫將filename指定的inode的訪問和修改時間分別更改為actimemodtimetimes欄位。

我將其解讀為:啟用以更改時間戳。Super Extra Kudos 為您提供如何使用此 Mountoption 的實際範例 ( allow_utim)

在支持普通 Unix 文件屬性的文件系統上,每個文件都有一個指定為所有者的使用者。只有文件的所有者可以更改其時間戳utime。不允許其他使用者更改時間戳,即使他們具有寫入權限。

FAT 文件系統不像所有者那樣記錄任何東西。FAT 文件系統驅動程序假裝特定使用者是每個文件的所有者:執行掛載的使用者或uid參數給定的使用者。使用正正常則,僅允許該使用者更改時間戳。文件也有一個所屬組,由gid參數確定。

FAT 文件系統不記錄 Unix 文件的權限,所以是驅動程序自己編造的。它根據umask,fmaskdmask參數分配權限,因此所有目錄和所有正常文件都具有相同的權限。

當所有者以外的使用者對文件系統具有寫訪問權時,他們不僅可以修改正常文件和目錄,還可以修改文件元數據,這將是有意義的。FAT 文件系統的主要元數據是文件的時間戳。通常,只有擁有使用者才能修改時間戳。通過傳遞allow_utime掛載選項,您也可以允許其他使用者更改時間戳。例如,要允許組foo修改文件系統中的任何內容,並允許其他人讀取但不能寫入,您將傳遞參數

gid=foo,umask=002,allow_utime=20

(這實際上是allow_utime基於 umask 的預設值)。

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