Tengo una unidad de disco USB 3 externa (capacidad de 2 TB) que probablemente se trasladará de una máquina a otra. El disco tiene una tabla de particiones GUID y una partición ext4. No puedo escribir en el disco a menos que eleve el proceso ( sudo
).
A partir de ahora estoy pensando en probar uno o ambos de los siguientes y me gustaría saber las desventajas de cada uno:
chmod 777 /mnt/externalDrive
chown nobody:nogroup /mnt/externalDrive
Si le doy permiso a 777 y el usuario1 (UID: 1005) escribe en él y luego muevo el disco a otra computadora donde user7 es UID: 1005, ¿qué sucede? ¿Se convierte user7 en el propietario del archivo en esa computadora? Me parece que periódicamente tendré que ejecutar chown -R nobody:nogroup /mnt/externalDrive
el disco.
¿Algo de lo que estoy considerando es una mala práctica obvia? Lo más probable es que el disco contenga videos, música e imágenes; ninguno de ellos necesita protección como algunos datos financieros.
fuente
Respuestas:
Ese es el problema con los sistemas multiusuario, especialmente si tiene más de uno. ;) No hay una forma realmente agradable de hacer lo que quieres. Los enfoques que vienen a la mente serían
El enfoque más efectivo sería volver a las prácticas comunes. En la mayoría de los sistemas Linux (al menos), existen algunos grupos que generalmente tienen GID comunes. Un ejemplo sería
users
, que tiene GID100
en la mayoría de las distribuciones de Linux. Si pudieras tener tu respectiva cuenta de usuario en este grupo, podríasEl primer y segundo punto son fáciles de lograr (
chown
,chmod
). El tercer punto es un poco más complicado.La parte de "propiedad de grupo" es relativamente fácil: puede configurar el bit SGID en todos los directorios de la unidad. El bit SGID aplicado a los directorios le dice al núcleo que se comporte de una manera BSDish: BSD hace que cada archivo / directorio creado bajo un grupo de directorios específico pertenezca no al grupo primario del proceso que crea el archivo / directorio (como lo hace Linux), pero por el propietario del directorio padre.
El bit de permiso es un poco difícil. Los permisos de los archivos / directorios recién creados están (entre otros) influenciados por
umask
una máscara de bits que indica qué bits no establecer si no se indica explícitamente. Unumask
valor común por ejemplo es022
, lo que significa que los bits de escritura para »grupo« y »otros« generalmente no deberían establecerse. Puede cambiarumask
a002
, diciéndole que no desea que se borren los permisos de escritura para el grupo, pero la desventaja es que no puede establecer este valor basado en el directorio y, por lo general, no desea tener permisos de escritura para su grupo primario establecido para cada archivo que cree.Esto podría resolverse utilizando ACL: en una ACL puede establecer un conjunto de permisos
mask
y unodefault
, que se aplica a todos los archivos y directorios creados dentro de un directorio con este conjunto de ACL. Entonces, una posible solución a su problema seríaVer
setfacl(1)
yacl(5)
para más detalles.fuente
Hay otra pregunta similar y se sugiere bindfs allí:
Los usuarios de OSX sugieren la
noowners
opción de montaje descrita así:fuente
El propietario y el grupo de un archivo se almacenan como números. Por lo tanto, el archivo será propiedad de uid = 1005, independientemente del usuario (o ninguno) que esté conectado en el sistema.
Cambiar el usuario / grupo a nadie no solucionará su problema. Entonces solo el usuario de nadie (o miembros del grupo de nadie) podría acceder a los archivos.
Desafortunadamente, no creo que haya una forma de deshabilitar las verificaciones de permisos en ext4. Consulte, por ejemplo, ¿Es posible deshabilitar los permisos de archivo en un sistema de archivos ext3 o ext4?
fuente
Andreas Wiese dice que si tiene una identificación de grupo común en todos los hosts, puede resolver su problema con
setgid
bit y ACLHago una pregunta ¿ ID de grupo predefinidos en las distribuciones de Linux?
Después de que la propia investigación descubriera que dicho grupo existe en todas las distribuciones tocadas:
sys
identificación de grupo compartido3
en Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.Con este:
y sabor de esto:
usted
user
será capaz de leer / escribir en cualquier archivo/dir
.La mayoría del trabajo puede ser
setgid
poco útil, pero desafortunadamente generalmente tiene poco control sobreumask
. Entonces ACL se usa para proporcionar una solución completa.Ver también:
fuente