
Eu tenho um segundo HDD que era meu antigo sistema operacional. Quando eu inicializo, a pasta /var/lib/mysql é mysql:mysql mas quando eu monto (LVM) em meu novo sistema operacional é nvidia-persistenced:vboxusers.
Quero fazer um cp -pr no novo sistema, mas não consigo quando as permissões são assim.
Alguma ideia?
Responder1
Os nomes de usuário são, na verdade, apenas mapeamentos para UIDs armazenados em arquivos /etc/passwd
. Da mesma forma, os nomes dos grupos são mapeados para GIDs de /etc/group
. Os IDs são decididos como e quando são necessários. 0 é sempre root, mas quase todo o resto é decidido quando o usuário e os grupos são criados.
Esses *IDs são números inteiros quase arbitrários que o sistema interpreta como usuários e grupos definidos. Os IDs são decididos como e quando são necessários. 0 é sempre root, mas quase todo o resto é decidido quando o usuário e os grupos são criados.
Quando um arquivo é gravado no disco, são esses valores UID e GID que são armazenados no disco, não a representação da string. E é isso que está acontecendo aqui. Seus mapeamentos de usuário→UID e grupo→GID em sua instalação secundária não se alinham com os UIDs de sua primeira instalação. Está mapeando a propriedade do arquivo para os usuários errados.
Se a sua instalação antiga nunca for um fator nisso, eu simplesmente remapearia a propriedade para o usuário mysql:
sudo chown --recursive mysql: /var/lib/mysql
Eu verifiquei uma instalação do MySQL no mundo real e todos os arquivos em meu /var/lib/mysql
pertenciam, mysql:mysql
então acho que isso deve estar correto.
Se a instalação antiga for usada novamente (por exemplo, um arranjo estilo dual-boot), você precisará ser mais criativo. Nesses casos, pode ser necessário alterar o mapeamento de UIDs e GIDs para usuários e grupos para que sejam iguais (e então corrigir os arquivos correspondentes do novo sistema). Seria bastante tedioso.