Escrito por Iván Alonso el Lunes 2 de Marzo de 2009

He desmontado un disco externo usb para poder sacar el disco físico (un IDE) y enchufarlo al equipo de sobremesa que utilizo como ‘servidor’ en mi red local. Estos discos suelen estar formateados con algún tipo de sistema de archivos FAT, que es bastante simple y no permite almacenar datos como usuario o grupo propietario de un archivo, distintos permisos de lectura/escritura, etc. Así, al montarlo por defecto sólo aparecerá como dueño el usuario root y para modificar cualquier cosa tendremos líos de permisos constantemente.

Opciones:

  1. Mover todo el contenido a otro disco, reformatear como ext3 (por ejemplo) y volver a poner los datos en su lugar. En mi caso no podía porque eran demasiados GBs y no tenía espacio libre en otro sitio (ni ganas de esperar a que se copiara todo), o
  2. Montarlo como si tuviera un usuario y grupo concreto y con una máscara de permisos para simular un sistema de permisos real.

Para optar por esta segunda posibilidad, editamos el archivo /etc/fstab (donde está incluida la información sobre montaje de discos) y añadimos la información siguiente al disco que nos ocupa:

# Antiguo disco usb
/dev/sdc1 /media/<punto_montaje> vfat rw,user,auto,utf8,uid=<tu_usuario>,gid=<tu_grupo>,umask=022 0 1

Con esto estamos montando el disco que nos interesa (cambiad /dev/sdc1 por el disco que corresponda, o includo mejor si usáis el UUID del disco, ver nota al final), que tiene formato vfat, y le estamos indicando los siguiente parámetros:

  • rw: con capacidad para lectura y escritura.
  • user: permite a un usuario ordinario montar el disco (y, por tanto, también desmontarlo tras el montado automático en el inicio).
  • auto: se puede montar con mount -a (que intenta montar todo lo que esté especificado en el archivo /etc/fstab).
  • utf8: para usar una codificación de caracteres amplia y que no os aparezcan signos raros en los nombres de archivo.
  • uid=<tu_usuario> y gid=<tu_grupo>, cambiando por tu usuario y el grupo al que perteneces, o aquellos que te interesen para el disco. Todas las operaciones devolverán que tu usuario es el dueño de los archivos, en lugar de root. Podéis comprobarlo luego con un ls -lah para ver quién es el owner, o hacedlo en vuestra home para ver cómo se llama vuestro usuario y grupo.
  • umask=022 para enmascarar los permisos. Con esta máscara pasarán a ser rwxr-xr-x, por lo que el dueño (tú) tiene permisos de lectura y escritura, cualquier otro usuario puede al menos leer el archivo, y también hemos asignado permisos de ejecución (que a mí me eran necesarios para compartir carpetas con Samba, si vosotros no necesitáis este permiso de ejecución, con utilizar la máscara 033 os valdrá).

Nota: Si en lugar de utilizar un identificador tipo /dev/lo_que_sea (que es algo que puede cambiar) queréis utilizar los UUID de los discos (que son únicos para cada disco, el formato debe ser:

UUID=<id> /media/<punto_montaje> vfat etcétera

Este id será un código alfanumérico generalmente bastante largo, que podéis averiguar mediante el comando:

ls /dev/disk/by-uuid -lah

Y así veréis fácilmente qué id corresponde a cada disco.

Etiquetas: ,

Esta entrada fue escrita el Lunes 2 de Marzo de 2009 a las 11:29 am y está archivada en la categoría Blog. Puedes seguir las respuestas y comentarios en el feed RSS 2.0. Puedes dejar un comentario, o dejar un trackback desde tu propia página.

7 comentarios en “Linux: Montar un disco FAT simulando el sistema de permisos”

  1. [...] empezar a utilizar un disco con formato vfat en mi equipo Linux, me he dado cuenta de que algunas cosas pueden resultar complicadas, como por ejemplo cambiar el [...]

  2. Antonio pasó por aquí el Viernes 5 de Febrero de 2010 a las 12:14 pm, y escribió:

    Un artículo muy bueno. En internet hay mucha información, pero suele ocurrir que a veces no es tan clara como nos gustaría para los inexpertos. Pues lo dicho un artículo muy claro y que va al grano.

    Sólo tengo una pregunta, a ver si alguien sabe la respuesta. En otros sitios he visto que en lugar de umask poner fmask y dmask. Es lo que todavía no logro ha entender. ¿Qué diferencia hay? ¿Cuándo usar uno y cuando los otros?.

    Yo tengo puesto fmask=0111,dmask=0000, que según leí sirve que cualquier usuario lea y escriba en la partición, también he añadido rw, aunque esto último no se si sobra por lo de fmask y dmask. Tengo los tres puestos (fmask,dmask,rw) y funciona.

    Una última cosa, si me lo permites te diría que añadas al artículo un ejemplo práctico de cuando usar UUID= y la ruta (/dev/sdc1). UUID es muy útil en discos externos (pendrive, HDD usb) ya que si lo conectamos a cualquier puerto funcionaría igual. La ruta sólo es válida siempre que se conecte el disco externo al mismo puerto usb. En caso de duda UUID funciona siempre. Al menos eso tengo entendido.

    Salu2s

  3. Hola Antonio,

    pues el tema de fmask y dmask no sé decirte, la verdad es que no los he usado nunca así que tampoco conocía las diferencias, investigaré para estar seguro de qué hacen exactamente.

    En cuanto a las últimas aclaraciones, gracias! quedan aquí apuntadas (mejor en los comentarios, para que cualquier visitante futuro vea quien las ha ido añadiendo).

  4. BMZ pasó por aquí el Domingo 14 de Febrero de 2010 a las 2:08 am, y escribió:

    Niño, mil gracias. Llevaba muchísimo tiempo intentando hacer esto y no lo conseguía. Encontré mil páginas por internet, pero ninguna simulaba el sistema de permisos, por lo que se me montaba el disco pero no podía escribir, ni borrar archivos. Muchas muchas gracias desde las canarias.

    ciao!

  5. De nada, me alegra que te haya servido de ayuda! :)

  6. MIGUEL ÁNGEL MARTÍNEZ SARABIA pasó por aquí el Lunes 26 de Julio de 2010 a las 4:37 am, y escribió:

    TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TEQUIERO, TE QUIERO , TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO, TE QUIERO,TE QUIERO, TE QUIERO, TE QUIERO,

    VIVA LINUX, VIVA LINUX, VIVA LINUX, VIVA LINUX, VIVA LINUX, VIVA LINUX, VIVA

  7. Vaya, gracias :)

Deja tu comentario