El sistema de archivos tal como está almacenado en el disco no almacena permisos de archivos, pero el controlador del sistema de archivos tiene que proporcionarlos al sistema operativo, ya que son una parte integral del concepto de sistema de archivos Unix y las interfaces de llamada del sistema no tienen forma de presentar que los permisos son desaparecido.
También considere lo que sucedería si un archivo no tuviera ningún bit de permiso. ¿Sería lo mismo que 0777
, es decir, acceso a todos; o lo mismo que 0000
, es decir, ¿no hay acceso a nadie? Pero ambos son permisos de archivo, entonces, ¿por qué no mostrarlos? O haga algo más útil y tenga una manera de establecer algunos permisos razonables.
Entonces, el controlador falsifica algunos permisos, los mismos para todos los archivos. Los permisos junto con el propietario y el grupo de los archivos son configurables en el momento del montaje. Estos se describen en "Opciones de montaje para grasa" en la página del comando man mount (8) :
Opciones de montaje para fat
(Nota: fat no es un sistema de archivos separado, sino una parte común de los sistemas de archivos msdos, umsdos y vfat).
uid=value
y gid=value
Establecer el propietario y el grupo de todos los archivos. (Valor predeterminado: el UID y el GID del proceso actual).
umask=value
Establezca la umask (la máscara de bits de los permisos que no están presentes). El valor predeterminado es la umask del proceso actual. El valor se da en octal.
dmask=value
Establezca la umask aplicada solo a directorios. El valor predeterminado es la umask del proceso actual. El valor se da en octal.
fmask=value
Establezca la umask aplicada solo a archivos normales. El valor predeterminado es la umask del proceso actual. El valor se da en octal.
Tenga en cuenta que los permisos se presentan como máscaras, por lo que los permisos finales son la negación de la máscara. fmask=0133
daría como resultado que todos los archivos tengan permisos 0644
, o rw-r--r--
.
Además, los valores predeterminados se heredan de la llamada al proceso mount()
, por lo que si llama mount
desde la línea de comandos, umask
se aplicará el shell .