尝试复制“/etc/profile
没有权限!“帖子的 OP 在她的评论中提到她的/etc
目录的权限字符串是drw-r--r--
。我发布了sudo chmod 644 /etc
,是的,确实重复了该问题。然后在实时环境中,我将权限更正回755
。(我认为这不会造成任何伤害,我只是在更改权限!)将/etc
权限恢复为原始状态后,登录问题和其他类似无法解决的问题都得到了sudo
解决,但我在 GUI 中遇到了很多问题。Unity 无法加载、没有启动器、没有出现 Dash!在一定程度上有所帮助,但其他问题仍然存在。
问题:
这背后的原因是什么?我只是切换了/etc
权限的执行位!为什么这对 Unity 有重大影响?
答案1
是的,我试过了(在虚拟机上):-)) 并得到了您描述的相同行为。我更改了权限/etc
,然后重新启动,因为我已经将系统配置为自动登录,它尝试直接登录我,但失败了。
我对 Unity 的内部结构了解不够多,无法理解细节,但我的猜测是,当您尝试登录时,由于系统无权访问它,因此/etc
无法读取各种基本文件(例如/etc/passwd
或/etc/group
任何内容),以便将其将您的用户名映射到适当的 UID 和 GID。因此,在尝试登录时,文件详细信息不知何故被搞砸了。
我的猜测,我强调这是我的猜测,是因为您的gconf
配置设置发生了更改,然后导致 Unity 出现问题。
我通过简单地从我的 中删除所有文件$HOME
、删除我的用户并重新创建他来修复我的虚拟机上的问题。显然,这不是您实际使用的系统上的解决方案。
我能想到的唯一解决方法是移动/重命名所有配置文件和目录:
mkdir old_dotfiles
for file in .*; do mv "$file" old_dotfiles; done
这会将您的所有配置文件和目录移动到~/old_dotfiles
。然后您可以注销并再次登录或重新启动,一切应该会恢复正常,尽管您将丢失配置设置。然后您可以尝试再次将它们复制回来。如果这只是文件所有权问题,将它们复制回来应该会重置所有权并可能解决您的问题。如果进行了更改之内其中一个 conf 文件,这将再次破坏您的系统,因此请谨慎操作。
请记住,大多数配置文件都会自动创建,因此您只需担心更改默认设置的情况。此外,您还应确保 GUI 的“系统”文件夹等已~/Desktop
正确设置。
我猜想这应该足以让你重返正常工作的系统,并重新发现对虚拟机的热爱。