
Estoy en una situación un poco extraña. Recientemente estuve trabajando para cambiar de Debian a Arch, y tengo mi partición de inicio para ambos apuntando a la misma partición (diferentes nombres de usuario, así que eso no es un problema).
Lo que quiero hacer es una de dos cosas:
- Configure el usuario en Arch con el mismo nombre de usuario y grupo que Debian, ¡y haga que todo funcione! O
- Mueva los archivos que me gustaría compartir entre carpetas de inicio a su propia partición y móntelos con fstab.
Para el segundo, tengo alrededor de 150 GB de archivos que necesitarían moverse a su propia partición, y tengo alrededor de 15 GB de espacio libre en mi partición de inicio. Entonces, lo que me gustaría hacer es de alguna manera crear una partición ext4 de 10 GB, mover archivos de 10 GB, expandir la partición nuevamente, mover archivos nuevamente, etc. hasta que todos los archivos se muevan a su propia partición.
Puedo hacerlo manualmente, pero sería más fácil si pudiera decir "Mueva 10 GB de archivos de aquí para allá, luego cambie su tamaño y repita hasta que me quede sin archivos".
¿Es eso siquiera posible?
Respuesta1
Los archivos de datos y configuración en los directorios /home/deberíaser independiente de la distribución, ya que está relacionado con las aplicaciones más que con el sistema operativo. Algunas distribuciones pueden modificar su versión de aplicaciones para usar diferentes nombres de carpeta, /home/rob
por ejemplo, pero no debería necesitar hacer mucho más que cambiar el nombre de la carpeta o un enlace simbólico para que coincida con lo que espera la aplicación.
Por lo tanto, crear un usuario en Arch que tenga acceso inmediato a los archivos y directorios que ya están presentes en los directorios de inicio de Debian no debería ser un gran problema.
Lo primero que debe hacer es calcular el UID del usuario de Debian y asegurarse de que sea el mismo en arch. El UID es la identificación de usuario "real", con la que inicia sesión es solo una representación humana del uid. Digamos que su usuario arch es 'rob' y el director de inicio de rob es /home/rob
:
$ ls -alnd /home/rob
drwxr-xr-x 94 1000 1000 12288 Jul 3 21:36 /home/rob
El uid y gid (id de grupo) son la tercera y cuarta columnas. Entonces esta carpeta es propiedad de uid 1000 y gid 1000. En el lado de Debian, esto correspondería al nombre de usuario y al nombre de grupo con los que está familiarizado en la contraseña:
$ grep 1000 /etc/passwd
rob:x:1000:1000:,,,,:/home/rob:/bin/bash
$ grep 1000 /etc/group
rob:x:1000:
Como puedes ver, el nombre del grupo también es "robar" en este caso. Esta es una opción de distribución: algunos crearán usuarios de forma predeterminada con un grupo principal con el mismo nombre, y otros crearán un users
grupo (a menudo gid 100) y lo convertirán en el principal. En términos de solucionar este problema, no importa demasiado, especialmente si eres el único usuario.
No recuerdo qué hace arch, pero asumiré que crea un users
grupo con gid 100.
Entonces solo necesitamos crear un nuevo usuario rob
, apuntarlo a la carpeta y asegurarnos de que esté configurado con el uid correcto:
$ adduser --home /home/rob --uid 1000 --no-create-home --gid 100 rob
O si primero quieres crear un grupo para rob, haz esto:
$ adduser --group --gid 1000 rob
Entonces
$ adduser --home /home/rob --uid 1000 --no-create-home --gid 1000 rob
Ahora configure la contraseña para la cuenta de robo.
$ passwd rob
E inicie sesión y debería tener acceso tal como lo tuvo en arch.
Respuesta2
La opción n.° 1 tiene muchas posibilidades de funcionar. Sólo necesitas hacer que el uid y el gid coincidan. Utilice groupadd -g
y useradd -u
para agregarlos a la base de datos de usuarios con uid y gid seleccionados manualmente que coincidan con los que encuentra en Debian conid -a
find /home -printf 'user %u %U\ngroup %g %G\n' | sort -u
Con suerte, la lista solo contiene los uids y gids de sus cuentas de usuario sin privilegios, y las del otro sistema se informan con los nombres correspondientes o como números sin nombre. Si el mismo uid o gid aparece dos veces en la lista con dos nombres diferentes, las cosas se complican más.
Para aquellos que se reportan sin nombres, use groupadd -g gid group
y useradd -u uid -g gid username
para crear entradas en la base de datos de usuarios dándoles sus nombres. Luego ejecute passwd username
para establecer una contraseña para el usuario que creó.