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:
- 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
- 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.