¿Cómo instalo manualmente un sistema de archivos de Linux para leer / escribir como usuario normal?

19

Esto puede parecer una pregunta estúpida, pero con la mayoría de las cosas de Linux, me parece que muchas cosas triviales no están documentadas.

De todos modos, quiero simplemente montar un sistema de archivos ext4 en un punto de montaje normal en Ubuntu (/ media / whereever), como escritura de lectura para el usuario conectado actualmente, es decir, yo.

No quiero agregar nada a / etc / fstab, solo quiero hacerlo ahora, manualmente. Necesito privilegios de superusuario para montar un dispositivo, pero solo el usuario root puede leer y escribir ese montaje. He probado varias de las opciones de montaje, lo agregué a fstab, pero sin suerte.

nicodemus13
fuente
¿Hay alguna razón por la que no desea montarlo en algún lugar dentro de su directorio de inicio?
Robert S Ciaccio

Respuestas:

13

En un sistema de archivos ext4 (como ext2, ext3 y la mayoría de los otros sistemas de archivos que se originan en Unix), los permisos de archivo efectivos no dependen de quién montó el sistema de archivos o de las opciones de montaje, solo de los metadatos almacenados dentro del sistema de archivos.

Con Ubuntu, el montaje debería ocurrir automáticamente cuando inserta el disco, o debería poder hacer clic en un icono para montar. También puede instalar pmountpara montar sistemas de archivos como usuario ordinario desde la línea de comandos.

Si tiene un sistema de archivos extraíble que usa diferentes ID de usuario de su sistema, puede usar bindfs(en el paquete de Ubuntu del mismo nombre) para proporcionar una vista de cualquier sistema de archivos con diferente propiedad o permisos. El sistema de archivos extraíble ya debe estar montado, por ejemplo, encendido /media/disk9; luego, si desea aparecer como el propietario de todos los archivos, puede ejecutar

mkdir ~/disk9
sudo bindfs -u $(id -u) -g $(id -g) /media/disk9 ~/disk9
Gilles 'SO- deja de ser malvado'
fuente
¡Gracias! Esto funcionó para mí con ext3. Tenga en cuenta que primero tuve que montar el sistema de archivos ext3 en algún directorio de montaje, luego montar ese directorio con bindfs en el directorio final.
Ilari Kajaste
8

Cuando monta el sistema de archivos ext4, utiliza los permisos integrados en ese sistema de archivos. Si desea anularlos, utilice lo siguiente:
1. Busque el UID del usuario que desea montar como: id <username>y busque UID = <userid> (<username>) GID = <groupid> (<groupid>) 2 .sudo mount -o nosuid,uid=<userid>,gid=<groupid> /dev/whatever /media/wherever

Esto montará el sistema de archivos y marcará al usuario especificado como el propietario de todos los archivos y al grupo especificado como el grupo para todos los archivos. nosuides una medida de seguridad que evita que el usuario traiga programas suid y los use para obtener acceso raíz al sistema (es decir, una versión suid de bash en el sistema de archivos). Agregar la noexecopción proporcionará seguridad adicional, pero evitará que el usuario ejecute archivos en el sistema de archivos.

Nota: Si solo está tratando de interactuar con el sistema de archivos usted mismo, debe corregir los permisos en el dispositivo o interactuar con él como root si es solo algo temporal (es decir, recuperar una instalación rota).

Si esto es para montar un USB u otra unidad externa extraíble, debe verificar el pmountsistema que puede automatizar el proceso por usted, o al menos facilitarlo considerablemente (es decir, pmount <device>crear las carpetas para usted, montarlo como su usuario, y le permite desmontarlo como usuario)

Darth Android
fuente
1
¿Alguna idea de si esto también debería funcionar con EXT3? Me meto EXT3-fs: Unrecognized mount option "uid=1000" or missing valueen dmesg cuando lo intento con ext3.
Ilari Kajaste
@Ilari: No funcionará con ext3, ni con ext4 para el caso. La mayoría de los controladores de Linux para sistemas de archivos unix no tienen opciones de mapeo UID y GID.
Gilles 'SO- deja de ser malvado'
-1 no funciona.
Ilari Kajaste
2

Puedes usar:

mount -o user /dev/devicenamey useropción en su fstab.

Andrey Regentov
fuente
1

Si no está de humor para editar manualmente su archivo / etc / fstab, le sugiero que pruebe PySDM para definir las reglas para montar su sistema de archivos ext4 de forma regular. Se puede instalar instalando el paquete "pysdm" en Synaptic, o buscando "pysdm" en el Centro de software de Ubuntu. Una vez instalado, está disponible en Sistema -> Administración -> Administrador de dispositivos de almacenamiento.

PySDM en acción

Zoot
fuente
1

Acabo de darme cuenta después de leer el último comentario en http://ubuntuforums.org/showthread.php?t=2142284 que todo lo que uno tiene que hacer essudo chown -Rvf <user>:<group> <mountpoint>

Esto es todo lo que se requiere ...

SACHIN GARG
fuente
2
Esta es una operación destructiva. Si lo hace antes del montaje, no habrá ninguna diferencia en la propiedad del archivo en la unidad montada; si lo hace después del montaje, sobrescribirá todos los permisos. Si la unidad contiene una instalación de Linux, cambiar los permisos como este hará que no se pueda iniciar después de desmontarla.
Warbo