web-dev-qa-db-fra.com

Options de montage "dmask" et "fmask"

J'ai essayé cette commande pour monter manuellement:

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

Je ne comprends pas ce que dmask et fmask font ici. Je sais qu'ils sont utilisés pour configurer des autorisations, mais lorsque je vérifie les autorisations de fichiers et de dossiers dans le répertoire monté, elles ne sont pas identiques à celles que j'ai définies à l'aide de fmask et dmask.

Alors, que font-ils réellement?

19
user2650973

fmask et dmask sont mount options pour le système de fichiers FAT , basé sur fstab .

Ils sont utilisés pour définir permissions (umask les définit à la fois sur les fichiers et les répertoires, alors que fmask s'applique uniquement aux fichiers et dmask aux répertoires).

Les masques ne sont PAS les autorisations du fichier, ils sont utilisés pour obtenir les autorisations souhaitées. De plus, les masques ne peuvent ajouter aucune autorisation, ils limitent uniquement les autorisations qu'un fichier ou un répertoire peut avoir.


umask est la valeur par défaut pour les fichiers et les dossiers. Si vous souhaitez personnaliser les autorisations des fichiers et des dossiers, vous devez utiliser fmask et dmask de la même manière que umask.

Les autorisations de masque ne ressemblent pas aux codes d'autorisation octaux passés à la commande chmod. Toutefois, ce tableau est très utile pour comprendre le fonctionnement des autorisations de masque:

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

Cela fonctionne comme les permissions octales normales mais soustrait de 7 et utilise la valeur absolue. Par exemple, si vous souhaitez définir les autorisations sur 0777, vous devez le définir 0000 dans umask (par exemple, umask=0000), si vous souhaitez le définir à 0755, vous le définissez à 0022:

  • Le premier caractère représente qu'il s'agit d'une permission octale
  • La seconde est pour le propriétaire
  • Le troisième est le groupe
  • Le quatrième est pour autre, c'est-à-dire tout autre utilisateur

( Source )


man mount donne ceci:

   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.

Vous trouverez également des exemples et des explications techniques de Drenriza sur buntuforums et bien sûr Wikipedia aide beaucoup, comme d’habitude.

37
MrVaykadji