
Tengo un segundo disco duro que era mi antiguo sistema operativo. Cuando lo inicio, la carpeta /var/lib/mysql es mysql:mysql pero cuando la monto (LVM) en mi nuevo sistema operativo es nvidia-persistenced:vboxusers.
Quiero hacer un cp -pr al nuevo sistema pero no puedo cuando los permisos son así.
¿Algunas ideas?
Respuesta1
Los nombres de usuario en realidad son solo asignaciones a UID almacenados en /etc/passwd
. De manera similar, los nombres de los grupos se asignan a los GID de /etc/group
. Las identificaciones se deciden cuando se requieren. 0 siempre es root, pero casi todo lo demás se decide cuando se crean el usuario y los grupos.
Estos *ID son números enteros casi arbitrarios que el sistema interpreta como usuarios y grupos definidos. Las identificaciones se deciden cuando se requieren. 0 siempre es root, pero casi todo lo demás se decide cuando se crean el usuario y los grupos.
Cuando un archivo se escribe en el disco, son estos valores UID y GID los que se almacenan en el disco, no la representación de la cadena. Y eso es lo que está pasando aquí. Las asignaciones de usuario → UID y grupo → GID en su instalación secundaria no se alinean con los UID de su primera instalación. Está asignando la propiedad del archivo a los usuarios equivocados.
Si su instalación anterior nunca va a ser un factor en esto, simplemente reasignaría la propiedad al usuario de MySQL:
sudo chown --recursive mysql: /var/lib/mysql
Revisé una instalación de MySQL del mundo real y todos los archivos en mi /var/lib/mysql
eran propiedad de, mysql:mysql
así que creo que esto debería ser exacto.
Si se volverá a utilizar la instalación anterior (por ejemplo, una disposición de estilo de arranque dual), deberá ser más creativo. En esos casos, es posible que necesite modificar la asignación de UID y GID a usuarios y grupos para que sean iguales (y luego corregir los archivos correspondientes del nuevo sistema). Sería bastante tedioso.