FAT32ファイルシステムはファイル権限をサポートしていないようですが、ls -l
FAT32パーティションでこれを行うと、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 file
FATファイルシステムに保存されている便利な権限の1つは、実行時に消える読み取り専用ビットです。
これは、上記のオプションがブロック権限としての価値を持つ理由でもあります。去るしたがって、すべてのファイルに対するfmask=0133
すべての権限がグループや他のファイルからx
削除され削除されます。w
その後、ファイルは読み取り専用ビットがクリアされているか設定されているかに応じて0644
/rw-r--r--
または0444
/権限を持ちます。r--r--r--
また、デフォルトは呼び出しプロセスから継承されるため、コマンドラインから呼び出すとmount()
シェルmount
の値がumask
適用されます。