Opções de montagem "dmask" e "fmask"

22

Eu tentei este comando para montar manualmente:

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

Não estou conseguindo o que dmaske fmaskfaço aqui. Sei que eles são usados ​​para configurar permissões, mas quando verifico as permissões de arquivos e pastas dentro do diretório montado, elas não são as mesmas que eu defini usando fmaske dmask.

Então, o que eles estão realmente fazendo?

user2650973
fonte

Respostas:

41

fmaske dmasksão mountopções para o sistema de arquivos FAT , com base em fstab.

Eles são usados ​​para definir permissões (os umaskdefine em arquivos e diretórios, enquanto fmaskse aplica somente a arquivos e dmaskdiretórios).

As máscaras NÃO são as permissões do arquivo, são usadas para obter as permissões desejadas. Além disso, as máscaras não podem adicionar nenhuma permissão, elas limitam apenas as permissões que um arquivo ou diretório pode ter.


O umaské o padrão para arquivos e pastas, se você quiser personalizar os arquivos e as permissões das pastas que você deve usar fmaske dmaskmesmo uso como o umask.

As permissões de máscara não são como os códigos de permissão octais passados ​​para o chmodcomando, no entanto, esta tabela é realmente útil para entender como as permissões de máscaras funcionam:

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

Ele funciona como as permissões octais normais, mas subtraído de 7, e usa o valor absoluto. por exemplo, se você deseja definir as permissões 0777, precisará defini-lo 0000no umask(por exemplo umask=0000), se você deseja defini-lo, 0755você o definirá 0022:

  • O primeiro caractere representa que é uma permissão octal
  • O segundo é para o proprietário
  • O terceiro é o grupo
  • O quarto é para outro, ou seja, qualquer outro usuário

( Fonte )


man mount dá o seguinte:

   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.

Você também encontrará exemplos e explicações técnicas do Drenriza nos fóruns do Ubuntu e, claro, a Wikipedia ajuda muito, como sempre.

MrVaykadji
fonte
1
Você tentou alterar o primeiro dígito de 0 para outros? Bitmask de 1 = setuid 2 = setgid 4 = pegajoso.
Paul Stelian