【问题标题】:Changing Ownership of a directory in OS X在 OS X 中更改目录的所有权
【发布时间】:2012-06-07 14:39:22
【问题描述】:

我已经安装了自制软件,并且正在尝试更改 /usr/local/include 目录的写入权限。

当我运行“brew doctor”时,我收到以下错误消息:

错误:/usr/local 目录不可写。即使这 安装 Homebrew 时目录是可写的,其他软件可能 更改此目录的权限。 “InstantOn”的某些版本 已知 Airfoil 的组件可以做到这一点。

您可能应该更改 /usr/local 的所有权和权限 返回您的用户帐户。

我尝试用 chown 来做这件事,但我对此很陌生,我认为我没有正确运行它。我跑了:

chown myusername /usr/local/include

我没有收到任何错误消息,但是当我运行 brew doctor 时,它说我仍然没有写入 /usr/local/include 的权限。

任何帮助将不胜感激!

编辑:

我收到“不允许的操作”错误。

cd /usr

chown myusername local

chown: local: 不允许操作

【问题讨论】:

    标签: macos homebrew chown


    【解决方案1】:

    您可以尝试使用命令ls -l。使用此命令,您将看到当前目录中的文件列表以及一些有用的信息,例如谁是该文件的所有者。所以你会看到chown 是否成功。我相信chown 是更改所有权的正确命令。

    【讨论】:

    • 我收到“操作不允许”错误。 cd /usr chown myusername local chown: local: 不允许操作
    • 在这种情况下,如果您是计算机的管理员,我认为您应该看看,因为 ls -l 是非常基本的命令,您不需要 root 权限。
    • 抱歉,我的评论不清楚。我可以做 ls -l。当我运行 chown 时,我得到了权限被拒绝错误。我只是用 sudo 运行它,就做到了。我设法向我的用户授予权限。我想知道我是否给了 too 太多许可。我在本地使用了 -R 标志,所以现在我的用户名对 /usr/local 中的所有目录都有权限。有没有一个好的地方可以开始更深入地了解 unix 目录权限和安全性?我只在谷歌 --> 找到答案 --> 复制粘贴阶段,这可能很危险。
    【解决方案2】:

    在我的系统上,/usr/localroot:admin 所有,并且是 rwxrwxr-x。我的用户是admin 组的成员,因此具有写入权限。我没有弄乱那里的所有权和权限,我的 Homebrew 安装也没有抱怨,所以我认为我的设置符合它的要求。

    检查您的/usr/local 的所有权;如果它归组 admin 所有,请检查您的非管理员帐户是否是该组的成员。

    【讨论】:

    • 我的用户名是管理员。 /usr/local 归 root:wheel 所有。不确定那是什么。我使用 -R 标志和 sudo 给我用户名对 /usr/local 中所有目录的写入权限。出于某种原因,当我尝试这样做时,它不接受“管理员”作为参数。
    • 嗨格雷姆。我遇到了完全相同的错误(OS X Mavericks)。也许这也适用于您:sudo chown `whoami` `brew --prefix` && brew doctor。希望这可以帮助! (注:echo `whoami` >> 你的用户名和echo `brew --prefix` >> /usr/local)
    【解决方案3】:

    对我有用的简单解决方案:

    1. 点击您的背景进入查找器
    2. 单击 go 并转到文件夹 /usr
    3. 右键单击本地并获取信息
    4. 解锁底部的锁
    5. 单击 + 号并将您的用户添加到列表中并授予读/写权限
    6. 单击底部的齿轮符号并选择应用于包含的项目以在该目录下递归并为其下的所有目录分配权限。

    在命令提示符下键入brew doctor 进行测试。我的结果:

    您的系统已准备就绪。

    【讨论】:

    • 我喜欢这个,因为它不会改变已经存在的东西,只是添加用户需要的读/写权限。
    • 我无法添加用户,出现错误:The operation can’t be completed because you don’t have the necessary permission.
    【解决方案4】:

    你应该使用:sudo chown username folder

    【讨论】:

    • 请解释为什么 OP 应该这样做。
    【解决方案5】:

    注意所有权变更

    不要尝试更改 /usr/ 的所有权或递归更改 /usr/local/ 的所有权 如果您没有收到原始问题中发布的相同错误。
    您可能会搞砸您的系统或削弱其安全性。

    某些用户可能会收到带有自制权限的错误,这些错误可以在不更改整个 /usr//usr/local/ 目录的所有权的情况下解决。

    根据我的经验,在大多数情况下,恢复/usr/local/Cellar的所有权就足够了:

    sudo chown -R "$USER" /usr/local/Cellar/
    

    或者,如果您有非标准安装

    sudo chown -R "$USER" "$(brew --prefix)/Cellar"
    

    【讨论】:

      【解决方案6】:

      这个问题刚刚开始出现在我的 MacBook 上。

      /usr/local 的所有者是:

      drwxr-xr-x   24 root  wheel    768 Apr  9 17:25 local
      

      我无法更改权限并通过 Finder 添加自己 - 我收到“您没有必要的权限”错误。

      这可能是由于 mac os 中的安全更改造成的吗? (我有 10.13.6)

      【讨论】:

        猜你喜欢
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-15
        相关资源
        最近更新 更多