¿Tienes problemas con los permisos en particiones ext2/3 contenidas en discos extraíbles cuando los conectas a un ordenador diferente del que se utilizó para formatearla o para crear algunos archivos?
Solución Supongamos que eres usuario usuario
foo, que el disco extraíble se monta en
/media/disk y que quieres tener derechos de lectura y escritura sobre todos los archivos del disco extraíble.
En primer lugar asegúrate de que perteneces al grupo
plugdev:
sudo adduser foo plugdev
Luego de que el grupo
plugdev es el propietario del directorio raíz de la partición y darle los permisos deseados:
sudo chgrp --recursive plugdev /media/disk
sudo chmod --recursive g+rw /media/disk
Y eso es todo! ... bueno, al menos siempre que estés en una cuenta que pertenezca al grupo
plugdev en toda máquina en la que quieras mantener los permisos :-)
ExplicaciónLos sistemas de archivos ext2/3 guardar la información de propiedad de los ficheros y directorios en formato numérico (user ID y group ID) y el contenido del archivo
/etc/passwd se usa para traducir los números a nombres de usuario legibles para las personas.
Veamos las consecuencias con un ejemplo:
- El usuario fulano con user ID 1000 pertenece al grupo foo con group ID 1000 en maquina1.
- Al archivo file de un disco extraíble se le asigna en maquina1 fulano:foo como propietario.
- El disco extraíble se monta en maquina2, que es el desktop de Mengano y por eso el usuario mengano tiene user ID 1000 y pertenece al grupo bar con group ID 1000.
- En maquina2 fulano tiene user ID 1001 y pertenece al grupo foo con group ID 1001, pero no al grupo bar.
- Debido al hecho de que el sistema de archivos simplemente identifica file como propiedad del usuario con user ID 1000 y del grupo con group ID 1000, maquina2 identificará mengano:bar como propietario de file.
- fulano por lo tanto no tendrá en maquina2 los mismos permisos sobre file que tenía en maquina1.
- Al hacer al grupo plugdev (con group ID 46 fija en todas las máquinas Linux) propietario de file en maquina1 y siempre que fulano pertenezca a dicho grupo, se puede asegurar asegurar que fulano disfrutará de los mismos permisos de grupo en maquina2.
Más información:- Si puedes asegurar que vas a tener siempre el mismo user ID en toda máquina a la que quieras conectar el disco extraíble, puedes olvidarte de esta entrada. Pero poder garantizar eso no es algo trivial. En cualquier caso, se sale del tema de esta entrada. Si hay lectores interesados en ello, tal vez hagamos una entrada al respecto :-)
- Los permisos de ficheros y directorios pueden ser usados para controlar el acceso a la información en ellos contenida, pero siempre que se controle el montaje de la partición. Saltarse estos mechanismos de control de aceso es una tarea facilísima para alguien capaz de controlar las opciones de montaje de la partición. Por tanto, no esperéis usar los permisos en un disco extraíble para controlar el aceso a su información, tendréis que usar encriptación en su lugar (tal vez os sirvan TrueCrypt o EncFS).