`/etc` 的权限有何意义?

`/etc` 的权限有何意义?

尝试复制“/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正确设置。

我猜想这应该足以让你重返正常工作的系统,并重新发现对虚拟机的热爱。

相关内容