¿Cómo puedo configurar automáticamente los permisos de escritura al montar una unidad USB en Linux?

18

Cuando monte una unidad usb externa en Linux (CentOs4), los permisos se configuran de manera predeterminada en solo lectura. Como hay varios usuarios en la computadora que necesitan usar la unidad externa, quiero que todos tengan rwpermiso para toda la unidad. También quiero que puedan montar la unidad si la computadora se ha apagado accidentalmente. Pueden usar sudo mountpara montar la unidad, pero esto solo les dará permiso de lectura, y obviamente no quiero permitirlo sudo chmod.

¿Existe una configuración predeterminada que pueda cambiar para que cada nuevo disco usb externo obtenga rwpermisos automáticamente ?

Jonas
fuente

Respuestas:

17

Para habilitar el acceso de todos a rw, la clave es la opción umask = 0 para montar el comando.

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask = 0 es suficiente, uid y gid solo por razones de claridad, por lo que no verá más propietarios 'root' de lo necesario.


La respuesta de @ Tom (escribir / etc / entrada fstab) le permitirá omitir sudoy si escribe umask = 0 como opción adicional allí, obtendrá lo mejor de ambos mundos:

Tener esto en / etc / fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

te permite simplemente correr

mount /dev/something

y todos tienen acceso a todos los archivos.


Aquí hay una nota técnica, si desea conocer los detalles:

Como man mountdice, 'umask = 0' asegurará que no se apliquen reglas adicionales al modo de acceso a archivos. Para los sistemas de archivos FAT (que son los más utilizados en discos USB), no hay modo de acceso almacenado. Pero su proceso actual tiene algún valor de umask establecido, puede verlo si se ejecuta solo umasken la terminal. mountusa eso como predeterminado y elimina el modo de acceso de su valor umask de todos los archivos en el disco montado. Los valores de umask más utilizados son (octal) 022: sin escritura de grupo y de otro tipo, y 027: sin escritura de grupo, sin ningún otro acceso.

temoto
fuente
Me sale un error con 'mala opción' si agrego umask=0 0 0como una entrada en fstab. ¿La umaskentrada debe ser la última entrada? ¿Qué hace la managed=0 0 0entrada que es actualmente la última?
Jonas
1
FWIW, la opción umask es una opción solo VFAT, es decir, la solución ayuda siempre y cuando la memoria USB utilice el sistema de archivos VFAT (que no fue mi caso).
Tomislav Nakic-Alfirevic
2
Gracias. Pero tuve que modificarlo para que funcione: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewheresolo funciona sin establecer el parámetro gid.
Nippey
2

Agregue una entrada a / etc / fstab. Aquí hay una entrada que agregué hace unas horas para mi unidad USB Seagate:

UUID = 4ACC734ECC733375 / media / Linux ext3 errores = remount-ro, valores predeterminados, usuarios, noatime, nodiratime 0 0

La clave aquí es la entrada "usuarios" que permite a los usuarios montar y desmontar la unidad.

Editar: esto funciona para unidades específicas; no sé si se puede habilitar para todas las unidades con una entrada.

Tom
fuente
Si un usuario monta la unidad, ¿todos los demás usuarios también obtendrían rwpermiso?
Jonas
1

Tipo mount. Esto le dará el lugar actual en el que se encuentra. Aquí está mi salida.

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

El último es mi unidad usb montada automáticamente por Linux Mint.

Ahora escribe

sudo umount /dev/sdf1

esto desmontará la unidad

Ahora vuelva a montar correctamente.

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
Almiar
fuente