Linux - Montar dispositivo con derechos de usuario específicos


86

¿Cómo puedo montar un dispositivo con derechos de usuario específicos al inicio? Todavía tengo algunos problemas para resolverlo. Me gustaría montar la división con uid=1000y gid=1000. Mi entrada actual al /etc/fstab/archivo se ve así:

dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000

No olvides gui = 1000. Además, ¿cuál es la propiedad / derechos de / var / www. Debería ser propiedad de root.
skub

1
@skub: el propietario de /var/www/es root. dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000 gui=1000no funcionó tan bien (Ubuntu eliminó la entrada después de un reinicio fallido).
wowpatrick

2
¿Tu fuente de montaje es "dev"?
James T Snell

@wowpatrick: su dispositivo de montaje debería ser algo así como / dev / sda1, no debería ser 'dev'.
skub

1
@skub: es una carpeta compartida de VirtualBox, por lo que / dev es la correcta. Ya lo descubrí, sudo mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/wwwfunciona bien.
wowpatrick

Respuestas:


119

Para montar un dispositivo con ciertos derechos, puede usar la -o Optiondirectiva mientras lo monta. Para montar el dispositivo que describió, ejecute:

 mount -t deviceFileFormat -o umask=filePermissions,gid=ownerGroupID,uid=ownerID /device /mountpoint

Por ejemplo el montaje de un VirtualBox carpeta compartida a /var/wwwla www-dataque el propietario se vería así:

mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www

Si desea montar el dispositivo al inicio, puede agregar la siguiente entrada a su /etc/fstabarchivo:

 /device /mountpoint deviceFileFormat umask=filePermissions,gid=ownerGroupID,uid=ownerUserID

De nuevo, con el mismo ejemplo, la entrada al /etc/fstabarchivo se vería así:

dev /var/www vboxsf umask=0022,gid=33,uid=33

Para los sistemas de archivos que no admiten el montaje como un usuario específico (como ext4), lo anterior dará el error

Unrecognized mount option "uid=33" or missing value

para cambiar el propietario de un montaje ext4 simplemente ejecute

chown username /mountpoint

después de que se haya montado.


Pude usar la opción uid / gid en ext4.
CMCDragonkai

Esto no parece funcionar con mount --bind, estoy usando un sistema de archivos
btrfs

¿No debería ser la máscara de usuario en umask=0077lugar de umask=0022dar permiso solo al propietario para leer o escribir? Parece que umask=0022dará permisos de lectura a otros si lo estoy leyendo correctamente. Quiero que solo el usuario que monta el disco tenga permiso de lectura o escritura.
Mian Asbat Ahmad

3

Para un sistema de archivos como ext3 o ext4, después de hacer

    chown -R username:group /mountpoint

para cambiar el propietario de los archivos existentes actualmente, puede configurar el bit de identificación del grupo para que cree nuevos archivos con el grupo específico (no funciona para la identificación del usuario en Linux):

    find /mountpoint -type d -exec chmod g+ws {} \;

La entrada de Wikipedia sobre setuid y setgid es bastante informativa, consulte la sección sobre directorios .


18
Cambiar la propiedad de todos los archivos en el dispositivo es muy invasivo. Como hay una -oopción para montar, es la mejor manera.
Expiación limitada el

66
-odesafortunadamente no funciona para ext4, como se explica en la respuesta de @wowpatrick.
js.

14
chownIngerir el contenido del disco montado a otro usuario es ridículo. No tiene idea de lo que podría romper para cualquier aplicación en esa unidad. Puede estar bien si todos los contenidos pertenecen a su usuario, pero este es un gran no-no ...
carlspring

El dispositivo en cuestión es / dev / www, es fácil controlar qué aplicaciones tienen acceso a él (probablemente solo un servidor WWW, que puede apagar durante la operación). Incluso si la aplicación que la usa todavía se está ejecutando, seguirá ejecutándose, ya que ese es el punto de la operación.
js.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.