setuid(和其他)权限在复制/其他地方时丢失 - 怎么办?

setuid(和其他)权限在复制/其他地方时丢失 - 怎么办?

我通过将根文件系统(当然不是特殊目录)的内容复制到另一个 HDD 来克隆现有的 Debian 7.x 发行版。我启动了,一切似乎都在运行,但是 - 我遇到了一些奇怪的错误。其中之一 - sudo 和 su 无法运行,抱怨缺乏二进制文件的 setuid 权限。好吧,我解决了这个问题,现在他们不再抱怨了,但是 - 也许还有其他文件的权限在复制过程中被搞砸了?有没有办法验证并修复所有相关的文件权限?

答案1

原始主机(或另一个类似的新安装发行版):

getfacl -R / > permissions.acl

你的主人:

setfacl --restore=permissions.acl

这里

答案2

这就是上帝创造的目的rsync

我使用克隆我的安装rsync -avxt --delete-before,然后运行lilo它们以使它们独立启动。是的,但必须确保你fstab不使用 UUID,否则一切都会陷入困境。我使用标签,这样磁盘顺序( sdasdb等)是什么并不重要。

答案3

我想不出简单的方法。一种方法是以/var/cache/apt/archivesroot ( )身份重新安装您拥有的每个软件包sudo su

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

下次,使用-prsync/cp 选项或您用来复制文件的等效选项。

答案4

用于rsync重新复制文件。我认为它会注意到只需要复制权限,因此它会修复它们,同时保留内容,所以它应该相对较快。

相关内容