次の(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で指定されたiノードのアクセス時間と変更時間をactimeとmodtime
に変更します。それぞれ時間のフィールド。
私はこれを次のように読みました:タイムスタンプの変更を有効にします。このMountoptionの使用方法の実際の例を示すことができるあなたのためのスーパーエクストラ賞賛(allow_utim
)
通常のUnixファイル属性をサポートするファイルシステムでは、各ファイルには所有者として指定されたユーザーがいます。ファイルの所有者のみが、タイムスタンプをutime
で変更できます。他のユーザーは、書き込み権限がある場合でも、タイムスタンプを変更することはできません。
FATファイルシステムは所有者のようなものを記録しません。 FATファイルシステムドライバーは、特定のユーザーがすべてのファイルの所有者であると偽ります。つまり、マウントを実行するユーザーか、uid
パラメーターで指定されたユーザーのいずれかです。通常のルールを使用すると、そのユーザーのみがタイムスタンプを変更できます。ファイルには、gid
パラメーターによって決定される所有グループもあります。
FATファイルシステムはUnixファイルのパーミッションを記録しないため、ドライバーがそれらを構成します。 umask
、fmask
、およびdmask
パラメータに基づいてアクセス許可を割り当てるため、すべてのディレクトリとすべての通常のファイルに同じアクセス許可があります。
所有者以外のユーザーがファイルシステムへの書き込みアクセス権を持っている場合、通常のファイルやディレクトリだけでなく、ファイルのメタデータも変更できることは理にかなっています。 FATファイルシステムで重要な主なメタデータは、ファイルのタイムスタンプです。通常、タイムスタンプを変更できるのは所有ユーザーのみです。 allow_utime
マウントオプションを渡すことにより、他のユーザーがタイムスタンプを変更できるようにすることができます。たとえば、グループfoo
がファイルシステム内のすべてを変更できるようにし、他のユーザーが読み取りはできるが書き込みはできないようにするには、パラメーターを渡します。
gid=foo,umask=002,allow_utime=20
(これは実際には、umaskに基づくallow_utime
のデフォルト値です)。