他の場所にコピーすると、setuid(および他の)権限が失われました。どうすればいいですか?

他の場所にコピーすると、setuid(および他の)権限が失われました。どうすればいいですか?

ルートファイルシステム(もちろん特別なディレクトリではない)の内容を別のHDDにコピーして、既存のDebian 7.xディストリビューションを複製しました。起動し、すべてが実行されているようだった - 奇妙なエラーが発生しました。そのうちの1つ - sudoとsuが実行に失敗し、バイナリに対するsetuid権限が不足していると文句を言いました。問題を解決し、今彼らはもはや文句を言わない。しかし、コピー中に権限が破損した他のファイルがある可能性がありますか?すべての関連ファイル権限を確認して変更する方法はありますか?

答え1

元のホスト(または新しくインストールされた他の同様のディストリビューション):

getfacl -R / > permissions.acl

あなたのマスター:

setfacl --restore=permissions.acl

~からここ

答え2

これが神の創造の目的ですrsync

私はインストールを複製し、rsync -avxt --delete-before実行してlilo独立して起動します。はい、しかしUUIDを使用しないでください。fstabそれ以外の場合はすべてが中断されます。ディスクの順序sda(など)が何であるかは重要ではないようにラベルを使用してくださいsdb

答え3

簡単な方法が思い出せませんね。 1つの方法は、/var/cache/apt/archivesすべてのパッケージをルート()として再インストールすることですsudo su

cd /var/cache/apt/archives
for i in *.deb
do
sudo dpkg -Gi $i
done

次に、-prsync / cpオプションまたはファイルのコピーに使用した同等のオプションを使用してください。

答え4

rsyncファイルを再コピーするために使用されます。コピー権限だけが必要だという点に気づき、内容を保存しながら修正してくれるので、相対的に速度が速くなると思います。

関連情報