修复/更正 OS X 主文件夹文件权限

ach*_*a99 5 chmod chown file-permissions osx-lion macos

长话短说,我设法弄乱了 OS X (Lion) 中主目录中的文件权限。虽然我对 linux 文件权限非常熟悉并且更容易更改它们,但我无法获得权限和/或命令的正确组合来适当地更改它们。

然而,在我继续之前,我必须提到我的设置与标准安装略有不同。我的硬盘驱动器分为两个驱动器,系统和用户。

我的主文件夹位于用户驱动器上的用户/[用户名],即。当两个驱动器都正确安装后,它可以在 /Volumes/User/Users/[username] 中访问。在 /User/ 中,我有一个符号链接 [username],它指向 //Volumes/User/Users/[username],这正如我想要的那样工作。

我尝试了以下两篇文章,这里这里只有我自己被锁定在我自己的主目录之外。与此同时,我将它们更改为完全全局访问,以便我可以使用它们,但我想解决这个问题。

小智 5

要将用户主目录的文件权限和访问控制列表 (ACL) 重置为其默认设置,请执行以下操作:

\n\n
    \n
  1. 在启动过程中按住 Command 和 R 键启动进入恢复模式。
  2. \n
  3. 打开终端(在“实用程序”菜单下)
  4. \n
  5. resetpassword在终端中输入并按回车键。
  6. \n
  7. 在“重置密码实用程序”窗口中,选择正确的卷,在底部,您\xe2\x80\x99将看到标有\xe2\x80\x98重置主文件夹权限和ACL\xe2\x80\x99的区域。单击该区域中的重置按钮。
  8. \n
  9. 关闭窗口,快速运行 OS X 实用程序,重新启动。
  10. \n
\n


Gor*_*son 4

首先,确保您拥有您的主文件夹(注意:我假设您从自己的用户帐户运行此文件夹,并且您是管理员):

sudo chown -R $USER:staff ~
Run Code Online (Sandbox Code Playgroud)

然后,给自己适当的访问权限,而不给其他人任何访问权限(稍后我们将做出一些例外)。请注意,这是两个命令,用于确保将执行访问权限添加到目录,而不是普通文件:

chmod -R 600 ~
chmod -R u+rwX ~
Run Code Online (Sandbox Code Playgroud)

现在,向其他人授予他们应该有权访问的目录的读取权限。如果您没有站点文件夹,则可以在第二个命令中将其保留:

chmod og+rX ~
chmod -R og+rX ~/Public ~/Sites
Run Code Online (Sandbox Code Playgroud)

苹果喜欢有访问控制条目,以防止你弄乱主文件夹的“重要”部分。同样,如果您没有站点,则可以将其关闭(不要忽略库;它是不可见的,但它在那里):

chmod +a "group:everyone deny delete" ~ ~/Desktop ~/Documents ~/Downloads ~/Library ~/Movies ~/Music ~/Pictures ~/Public ~/Sites
Run Code Online (Sandbox Code Playgroud)

最后,修复您的投递箱:

chmod og=wX ~/Public/Drop\ Box
chmod +a "user:$USER allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit" ~/Public/Drop\ Box
Run Code Online (Sandbox Code Playgroud)

请注意,此过程不会正确“修复”各个文件夹内文件的权限,但这并不重要,因为它为您提供了对它们的完全访问权限,而且其他人都无法进入这些文件夹......

  • 做你建议的事情会破坏事情。您将取消二进制文件的执行权限。仪表板小部件、“~/Applications”中的程序、服务都会损坏。可能还多一点。 (6认同)