Il filesystem come archiviato su disco non memorizza le autorizzazioni dei file, ma il driver del filesystem deve fornirle al sistema operativo poiché sono parte integrante del concetto di filesystem Unix e le interfacce di chiamata del sistema non hanno modo di presentare che le autorizzazioni sono mancante.
Considera anche cosa accadrebbe se un file non avesse alcun bit di autorizzazione? Sarebbe lo stesso 0777
, cioè l'accesso a tutti; o lo stesso di 0000
, cioè nessun accesso a nessuno? Ma entrambi sono permessi sui file, quindi perché non mostrarli? O fai qualcosa di più utile e hai un modo per impostare alcune autorizzazioni sensibili.
Quindi, il driver falsa alcune autorizzazioni, le stesse per tutti i file. Le autorizzazioni insieme al proprietario e al gruppo dei file sono configurabili al momento del montaggio. Questi sono descritti in "Opzioni di mount per fat" nella pagina man mount (8) :
Opzioni di mount per fat
(Nota: fat non è un filesystem separato, ma una parte comune dei filesystem msdos, umsdos e vfat.)
uid=value
e gid=value
imposta il proprietario e il gruppo di tutti i file. (Impostazione predefinita: UID e GID del processo corrente.)
umask=value
Imposta umask (la maschera di bit delle autorizzazioni che non sono presenti). L'impostazione predefinita è umask del processo corrente. Il valore è indicato in ottale.
dmask=value
Imposta l'umask applicata solo alle directory. L'impostazione predefinita è umask del processo corrente. Il valore è indicato in ottale.
fmask=value
Imposta l'umask applicato solo ai file normali. L'impostazione predefinita è umask del processo corrente. Il valore è indicato in ottale.
Si noti che le autorizzazioni sono presentate come maschere, quindi le autorizzazioni finali sono la negazione della maschera. fmask=0133
risulterebbe in tutti i file con autorizzazioni 0644
o rw-r--r--
.
Inoltre, i valori predefiniti vengono ereditati dalla chiamata del processo mount()
, quindi se si chiama mount
dalla riga di comando, umask
verranno applicate le shell .