![rsync 恢复主文件夹后无法登录 ubuntu](https://linux22.com/image/1046155/rsync%20%E6%81%A2%E5%A4%8D%E4%B8%BB%E6%96%87%E4%BB%B6%E5%A4%B9%E5%90%8E%E6%97%A0%E6%B3%95%E7%99%BB%E5%BD%95%20ubuntu.png)
在从 12.04 升级失败后,我最近将 ubuntu/lubuntu 14.04 重新安装到我妻子的 Packard Bell Dot S 上网本上。随后,我使用 rsync 从备份中恢复了主目录。我使用了
- 档案
选项应该保留权限和所有权信息。我可以登录我的帐户,但不能登录她的帐户。当我登录时,它立即返回到登录屏幕。我试图从我的帐户更改我妻子主目录中所有文件的所有权,但即使这样也无济于事。为什么会发生这种情况,我如何才能登录她的个人资料。我必须补充一点,安装成功,因为我可以在使用 rsync 进行恢复之前登录她的帐户。我在另一台计算机上按照完全相同的过程进行安装和恢复,没有任何问题。
答案1
有一个文件需要特别查看:~/.Xauthority
在她的主目录中。
请注意,它是一个隐藏文件。
登录您的帐户,转到她的主目录并mv .Xauthority .old_Xauthority
。
注销并让她登录。
man xauth
了解更多。
答案2
我在 Fedora 系统上遇到了同样的问题,但根本原因可能适用于 Ubuntu 或其他 Debian 系统,具体取决于它们的配置。
经过一番分析,我发现了一个主要可能的原因:文件上下文。如果您使用 rsync --archive 克隆主文件夹,则有几项内容不会被复制。帮助中提到了硬链接、ACL 和 XAttrs。文件上下文也不会被复制。默认情况下,所有主文件夹条目都是 user_home_t 类型。某些隐藏文件(如 .Xauthority)具有更严格的类型,如 xauth_home_t。但是,rsync 创建的副本很可能是非主文件夹,因此所有复制的文件都将被标记为 unlabeled_t 类型。这意味着,根据系统中的保护级别,即使所有者设置正确(--archive 选项就是这样),文件也可能因为文件上下文而被锁定。
您可以使用以下命令轻松验证这一点:ls /home//* -Zd 这将显示文件上下文。
修复文件上下文应该很容易。使用 root 访问权限,只需使用此命令:restorecon -vR
希望这对某人有帮助。