「ls」コマンドがFAT32パーティション内のファイルの権限を表示するのはなぜですか?

「ls」コマンドがFAT32パーティション内のファイルの権限を表示するのはなぜですか?

FAT32ファイルシステムはファイル権限をサポートしていないようですが、ls -lFAT32パーティションでこれを行うと、ls -lファイルに権限があるとマークされます。

-rw-r--r-- 1 john john 11 Mar 20 15:43 file1.txt
-rw-r--r-- 1 john john 5 Mar 20 15:49 file2.txt

ls -lファイルの権限が表示されるのはなぜですか?

ベストアンサー1

ディスクに保存されているファイルシステムはすべてのファイル権限を保存しませんが、ファイルシステムドライバはそれをオペレーティングシステムに提供する必要があります。これはUnixファイルシステムの概念の不可欠な部分であり、システムコールインターフェイスは不足している権限を表現できないためです。

また、ファイルに権限ビットがまったくない場合はどうなるか考えてみてください。と同じで0777すべてのアイテムにアクセスしますか、それとも同じで0000誰にもアクセスしませんか?しかし、これら二つははいファイル権限がありますが、なぜ表示されないのですか?または、より便利なタスクを実行し、合理的な権限を設定する方法があります。

したがって、ドライバは一部の権限、つまりすべてのファイルに対してほとんど同じ権限を偽造します。権限とファイルの所有者とグループは、インストール時に構成できます。これは「Fat インストールオプション」で説明されています。mount(8) のマニュアルページ:

脂肪取付オプション
(注:FATは別々のファイルシステムではなく、msdos、umsdos、およびvfatファイルシステムの共通部分です。)

uid=value そして、 gid=value
すべてのファイルの所有者とグループを設定します。 (デフォルト:現在のプロセスのUID、GID)

umask=value
umask(存在しない権限のビットマスク)を設定します。デフォルトは現在のプロセスのumaskです。値は8進数で提供されます。

dmask=value
ディレクトリにのみ適用されるumaskを設定します。デフォルトは現在のプロセスのumaskです。値は8進数で提供されます。

fmask=value
通常のファイルにのみ適用されるumaskを設定します。デフォルトは現在のプロセスのumaskです。値は8進数で提供されます。

chmod ugo-w fileFATファイルシステムに保存されている便利な権限の1つは、実行時に消える読み取り専用ビットです。

これは、上記のオプションがブロック権限としての価値を持つ理由でもあります。去るしたがって、すべてのファイルに対するfmask=0133すべての権限がグループや他のファイルからx削除され削除されます。wその後、ファイルは読み取り専用ビットがクリアされているか設定されているかに応じて0644/rw-r--r--または0444/権限を持ちます。r--r--r--

また、デフォルトは呼び出しプロセスから継承されるため、コマンドラインから呼び出すとmount()シェルmountの値がumask適用されます。

おすすめ記事