it-swarm-es.com

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

Cuando instalo una unidad USB externa en Linux (CentOs4), los permisos se establecen de forma predeterminada en solo lectura. Dado que hay varios usuarios en la computadora que necesitan usar la unidad externa, quiero que todos tengan permiso rw para toda la unidad. También quiero que puedan montar la unidad si la computadora se ha apagado accidentalmente. Pueden usar Sudo mount para montar la unidad, pero esto solo les dará permiso de lectura, y obviamente no quiero permitir Sudo chmod.

¿Hay alguna configuración predeterminada que pueda cambiar para que cada nuevo disco usb externo obtenga automáticamente rw permisos?

17
Jonas

Para habilitar el acceso de todos los 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 claridad, por lo que no hay más propietarios "root" de los necesarios.


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

Teniendo 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 detalles:

Como dice man mount, '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 un conjunto de valores de umask, puede verlo si ejecuta solo umask en terminal. mount usa eso como predeterminado y elimina el modo de acceso de su valor de 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.

17
temoto

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 errors = remount-ro, predeterminados, usuarios, noatime, nodiratime 0 0

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

Edición: esto funciona para unidades específicas. No sé si se puede habilitar para todas las unidades con una entrada.

2
Tom

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

[email protected] ~ $ 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 automatizada por Linux Mint.

Ahora escribe

Sudo umount /dev/sdf1

esto desmontará la unidad

ahora vuelve a montar correctamente.

Sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
1
Rick