Solución de problemas de permisos cuando se utiliza un disco duro externo EXT4 con múltiples instalaciones de Linux

18

Tengo un disco duro externo y como solo uso Ubuntu y Fedora, decido formatear mi disco duro para ext4, todo está bien.

El problema es que cuando monte la unidad necesito cambiar el permiso para poder leer y escribir.

¿Qué tipo de permiso debo usar? adm mi nombre de usuario?

Javier Gonzalez
fuente

Respuestas:

5

Aunque sea un cojo de mi parte, tendré que responder la pregunta con otra pregunta. Si todo lo que estamos hablando es para un sistema operativo, entonces sería

sudo chown -R (user name) /dev/(device name)

( ubuntu )

o solo

chown -R (user name) /dev/(device name)

fedora : nosudo, solo ejecuta el comando desde la raíz.

La parte del raspador de fideos, y la parte para la que no tengo buenas respuestas, es cómo hacerlo para que no tenga que volver a escribir manualmente cuando va y viene entre distribuciones. Casi estaría tentado de agregar la línea a mi ~/.bashrc, pero probablemente haya una mejor manera que aún no conozco o no he pensado.

usuario2367
fuente
Eso es lo que necesito para cambiar el permiso cada vez que cambio de distribución
Javier Gonzalez
1
Solo para asegurarme y satisfacer mi propia curiosidad intelectual, volví y verifiqué dos veces con una unidad USB EXT4 que tengo. No sabía si tomar posesión del dispositivo es lo mismo que tomar posesión del sistema de archivos, y lo es. sudo chown -R (nombre de usuario) / dev / (nombre del dispositivo) le otorga la propiedad de todos los archivos en la unidad, incluso si no los creó.
user2367
Sí, a menos que solo agregue la línea a ~ / .bashrc para que se ejecute automáticamente cada vez que ejecute la terminal, no tengo una respuesta para eso. Tal vez podría agregarlo a cron? Pero parece que debería haber una forma de organizar que se ejecute cuando se inicie la distribución.
user2367
Realmente amo ext4 pero es una mierda seguir cambiando el permiso jaja
Javier Gonzalez
10

La solución más simple es asegurarse de que sus cuentas de usuario de Ubuntu y Fedora tengan la misma identificación de usuario (UID).

Creo que Fedora inicia las cuentas de usuario en 500 de forma predeterminada, mientras que Debian y Ubuntu las inician en 1000, por lo que es muy probable que en un sistema operativo sea el número de usuario 500 y en el otro sea el número de usuario 1000. El sistema de archivos usa este número UID para realizar un seguimiento de los permisos, de modo que si se asegura de que tengan el mismo UID, se considerarán el mismo usuario y no se producirán problemas de permisos.

Creo que lo mejor que puede hacer es hacer que ambos sean UID = 1000, así que cambie el UID en el sistema Fedora, luego asegúrese de que todos los archivos en el disco externo y en $ HOME en la instalación de Fedora sean propiedad de UID 1000. Después que ya no deberías tener problemas de permisos.

JanC
fuente
Sí, voy a hacer eso, gracias por tu tiempo :)
Javier Gonzalez
1
¡Lea también mi adición o el usuario de Fedora no podrá iniciar sesión!
JanC
Todo está claro, lo probaré ahora mismo, también gracias por editar el título de la pregunta ahora está muy claro.
Javier González
3

En / etc / fstab, podría poner uid = 1000 (en Ubuntu, son 500 en Fedora) para que la unidad sea propiedad de su usuario (suponiendo que sea el primer usuario, yada yada yada ... si no, su usuario uid from id) y umask = 000 si quisieras que todos los usuarios tuvieran acceso (o 077 solo para el especificado por uid = - es una máscara, por lo que pones lo opuesto a lo que desearías)

Para obtener más información sobre el uso de / etc / fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html

maco
fuente
1
Si configuro el permiso en 077, ¿no necesito cambiar el permiso cuando cambio de ubuntu a fedora?
Javier González el
@Dracirate: Creo que podría necesitar 000 en lugar de 077. Si coloca una entrada fstab para la unidad en cada sistema (tanto Ubuntu como Fedora), la montarán automáticamente para que sea utilizable.
maco
3

Desafortunadamente, el kernel de Linux aplica el permiso POSIX en ext2 / ext3 / ext4 FS.

Puede solucionar el permiso POSIX con el grupo compartido. Hago la pregunta correspondiente: /unix/273144/predefined-group-ids-across-linux-distros/ pero después de todo hice mi propia investigación.

Descubrí que el grupo sys comparte id 3 en Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.

Con tal descubrimiento en mente, una solución puede ser:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

y sabor de esto (siempre que esté en Linux / FreeBSD / MacOSX / Solaris):

$ sudo adduser user sys

Ver también:

gavenkoa
fuente
Usando este método, la ejecución cd /mnt/data/dir; touch example.txt; ls example.txt ... ... espectáculos -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt. Ejecutar más tarde mv example.txt ~; ll ~/example.txt... muestra ... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txt, con eso +al final de los permisos. Por lo tanto, muchos +terminarán apareciendo en muchos lugares, haciendo que la gente se pregunte por qué esos archivos son especiales (solo porque se copiaron / movieron de una carpeta en particular). ¿Hay alguna forma de dejar de producirlos +automáticamente?
Ganton
2

Podrías intentar usar exfat o ntfs. Para mí funciona de esta manera. Pero ahora no sé si funciona con todos los permisos de archivo. Yo creo que no.

d3rdon
fuente
2

Esta es una ligera variación del enfoque de @ gavenkoa de usar grupos compartidos, y no implica la modificación de la unidad montada.

Compruebe qué ID de grupo (GID) se utiliza en la unidad montada.

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

Digamos que ve algo similar a lo siguiente:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

Esto significa que 12000es el GID actual de los datos en la unidad, y los datos pueden ser leídos y ejecutados (aunque no pueden ser escritos) por ningún otro usuario del grupo. Cree un nuevo grupo (por ejemplo driveusers) y agregue su usuario actual al nuevo grupo:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive
jadelord
fuente
1

Encontré estas otras soluciones:

/unix/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

/unix//a/273705

Con este:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

y sabor de esto:

sudo adduser user sys  

su usuario podrá leer / escribir cualquier archivo /dir.

@jadelord @ gavenkoa ¿cree que hay alguna mejora que se pueda hacer hoy en día en sus soluciones sugeridas para los usuarios de Ubuntu (o Fedora)? Gracias

horizontebrave
fuente