
2 台目の HDD が古い OS でした。起動すると /var/lib/mysql フォルダは mysql:mysql になりますが、新しい OS でマウント (LVM) すると nvidia-persistenced:vboxusers になります。
新しいシステムに対して cp -pr を実行したいのですが、権限がこのようになっていると実行できません。
何か案は?
答え1
ユーザー名は、実際には に保存されている UID へのマッピングにすぎません/etc/passwd
。同様に、グループ名は の GID にマッピングされます/etc/group
。ID は必要に応じて決定されます。0 は常にルートですが、その他ほとんどすべてはユーザーとグループの作成時に決定されます。
これらの *ID は、システムが定義済みのユーザーとグループとして解釈するほぼ任意の整数です。ID は必要に応じて決定されます。0 は常にルートですが、その他ほとんどすべてはユーザーとグループの作成時に決定されます。
ファイルがディスクに書き込まれるとき、ディスクに保存されるのは文字列表現ではなく、これらの UID と GID の値です。そして、それがここで起こっていることです。セカンダリ インストールでのユーザー → UID とグループ → GID のマッピングは、最初のインストールの UID と一致しません。ファイルの所有権が間違ったユーザーにマッピングされています。
古いインストールがこの問題の要因にならない場合は、所有権を mysql ユーザーに再マップするだけです。
sudo chown --recursive mysql: /var/lib/mysql
実際の MySQL インストールを確認しましたが、すべてのファイルの/var/lib/mysql
所有者が だったmysql:mysql
ので、これは正確であると思われます。
古いインストールを再度使用する場合は (デュアルブート スタイルの配置など)、より創造的になる必要があります。その場合、UID と GID のユーザーとグループへのマッピングを変更して同じにする必要があります (その後、新しいシステムから対応するファイルを修正します)。これはかなり面倒な作業です。