web-dev-qa-db-ja.com

「dmask」および「fmask」マウントオプション

私はこのコマンドを手動でマウントしようとしました:

Sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137

ここでdmaskfmaskが何をするのかわかりません。アクセス許可の設定に使用されることは知っていますが、マウントされたディレクトリ内のファイルとフォルダーのアクセス許可を確認すると、fmaskおよびdmaskを使用して設定したものとは異なります。

それで、彼らは実際に何をしているのでしょうか?

19
user2650973

fmaskdmaskmountfstab に基づく FATファイルシステム のオプションです。

permissionsumaskはファイルとディレクトリの両方に設定しますが、fmaskはファイルにのみ適用され、dmaskはディレクトリに適用されます)の定義に使用されます。

マスクはファイルの権限ではなく、必要な権限を取得するために使用されます。さらに、マスクはアクセス許可を追加できません。ファイルまたはディレクトリが持つことができるアクセス許可のみを制限します。


umaskはファイルとフォルダーのデフォルトです。ファイルとフォルダーの権限をカスタマイズする場合は、fmaskと同じ使用法dmaskおよびumaskを使用する必要があります。

マスク許可はchmodコマンドに渡される8進数許可コードとは異なりますが、この表はマスク許可がどのように機能するかを理解するのに非常に役立ちます。

    0   1   2   3   4   5   6   7
r   +   +   +   +   -   -   -   -
w   +   +   -   -   +   +   -   -
x   +   -   +   -   +   -   +   -

通常の8進数の許可として機能しますが、7から減算され、絶対値を使用します。たとえば、アクセス許可を0777に設定する場合は、umask0000を設定する必要があります(例:umask=0000)、0755に設定する場合は、0022に設定します。

  • 最初の文字は、その8進数の許可を表します
  • 2番目は所有者向けです
  • 3番目はグループです
  • 4番目はその他、つまり他のユーザー用です

ソース


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 は通常どおり役立ちます。

37
MrVaykadji