文件迁移后修复 CentOS 6.5 权限

文件迁移后修复 CentOS 6.5 权限

我在 VirtualBox 虚拟机中运行 CentOS 6.5。最近,我的虚拟硬盘空间不足。为了解决这个问题,我决定为该目录创建第二个硬盘/usr。我安装了它并以 root 身份复制了文件rsync -a /usr.bak /usr。这似乎保留了所有文件所有权和权限。

然而,现在我遇到了奇怪的许可问题。虽然我可以很好地启动系统,但有很多事情不起作用,例如:

  1. sudo service network restart“确定 eth0 的 IP 信息”时,网络适配器无法工作。
  2. 关闭 ACPI 时不再在 Gnome 中弹出相同的对话框。
  3. 我看到一些“/usr/bin/logger:权限被拒绝”错误。

我之前已经禁用了 SELinux,所以我认为这不会造成干扰。我还尝试通过以 root 身份运行来修复权限,但问题仍然存在:

for i in `rpm -qa`;do rpm --setperms $i;done

rsync我使用这个新的安装点复制文件时可能会出现什么问题?我能做些什么来修理东西吗?请注意,这是一个开发沙箱,因此我并不非常担心修复是否会涉及不理想的安全设置。

答案1

rsync 的工作原理如下。

rsync options source destination

但你所做的是,

rsync -a /usr.bak /usr

不应该是相反吗?

/usr.bak据我所知,您通过分配to的权限搞乱了权限/usr。恢复目录中的原始权限后更改 rsync 命令/usr,然后重新启动系统,问题应该得到解决。重新启动只是为了确定,但不是必需的。

有时,权限也可能因为 rpm 包而混乱。您可以找到与该问题相关的讨论这里

如果 rpm 尝试更新由于“chattr +i /usr/bin/write”而无法更改的现有文件,则会创建这些文件。在我删除 setuid 标志后,我很久以前就已经这样做了。奇怪的是,+i 在 write 和 chsh 上消失了,而 setuid 又回来了。

相关内容