私はこのコマンドを手動でマウントしようとしました:
Sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137
ここでdmask
とfmask
が何をするのかわかりません。アクセス許可の設定に使用されることは知っていますが、マウントされたディレクトリ内のファイルとフォルダーのアクセス許可を確認すると、fmask
およびdmask
を使用して設定したものとは異なります。
それで、彼らは実際に何をしているのでしょうか?
fmask
とdmask
は mount
fstab
に基づく FATファイルシステム のオプションです。
permissions (umask
はファイルとディレクトリの両方に設定しますが、fmask
はファイルにのみ適用され、dmask
はディレクトリに適用されます)の定義に使用されます。
マスクはファイルの権限ではなく、必要な権限を取得するために使用されます。さらに、マスクはアクセス許可を追加できません。ファイルまたはディレクトリが持つことができるアクセス許可のみを制限します。
umask
はファイルとフォルダーのデフォルトです。ファイルとフォルダーの権限をカスタマイズする場合は、fmask
と同じ使用法dmask
およびumask
を使用する必要があります。
マスク許可はchmod
コマンドに渡される8進数許可コードとは異なりますが、この表はマスク許可がどのように機能するかを理解するのに非常に役立ちます。
0 1 2 3 4 5 6 7
r + + + + - - - -
w + + - - + + - -
x + - + - + - + -
通常の8進数の許可として機能しますが、7から減算され、絶対値を使用します。たとえば、アクセス許可を0777
に設定する場合は、umask
に0000
を設定する必要があります(例:umask=0000
)、0755
に設定する場合は、0022
に設定します。
( ソース )
man mount
はこれを与えます:
umask=value
Set the umask (the bitmask of the permissions that are not
present). The default is the umask of the current process. The
value is given in octal.
dmask=value
Set the umask applied to directories only. The default is the
umask of the current process. The value is given in octal.
fmask=value
Set the umask applied to regular files only. The default is the
umask of the current process. The value is given in octal.
また、Drenrizaの buntuforums の例と技術的な説明もあります。もちろん Wikipedia は通常どおり役立ちます。