我对/usr/local/正确的权限吗?
-
16-10-2019 - |
题
我在用着 自制 对于我的端口需求,似乎比Macports有点“清洁”)。
我可以安装而没有 sudo
(这很棒),但是链接步骤似乎需要它(/usr/local/share/man/man3
由 root
).
一个 指导 我发现建议我递归 chown /usr/local
通过做
sudo chown -R `whoami` /usr/local
这是安全的……还是一个坏主意™?
另外:我的权限正确吗?
$ pwd
/usr/local/share/man
$ ls -lah
total 32
drwxrwxr-x 8 root staff 272B 4 Set 11:02 .
drwxrwxr-x 9 root staff 306B 10 Set 11:27 ..
drwxr-xr-x 3 root wheel 102B 4 Ago 2009 de
drwxrwxr-x 163 root staff 5,4K 10 Set 11:27 man1
drwxr-xr-x 11 root wheel 374B 10 Set 11:27 man3
drwxr-xr-x 7 ago staff 238B 10 Set 11:39 man5
drwxr-xr-x 11 ago staff 374B 10 Set 11:39 man7
-rw-r--r-- 1 root staff 13K 4 Set 11:02 whatis
解决方案
通常最好保持权限尽可能严格。保持 /usr/local
由 root
意味着仅处理运行 root
/sudo
(或通过Apple授权对话框询问管理用户)可以写入此区域。因此,一个过程下载必须在损坏那里的文件之前要求您提供密码。
但是,正如您所说,这使添加新程序更加困难。
我可以跑步 sudo
, ,由于您安装内容的频率少于运行它们,但您必须相信构建过程不会改变任何内容。
如果您想避免使用Sudo,我会安装自制 ~/usr/local
并更改您的道路,人口等,以包括那里的目录。
更好的方法是创建另一个用户 - 例如, homebrew
并创建该用户拥有的目录。然后,使用 sudo -U homebrew
. 。其他用户将无法覆盖任何其他文件,因为他们没有运行 root
其他程序不会影响自制。 (我注意到 自制常见问题解答 如果您在“多用户环境”中,则建议这个新用户。我会说任何包括MACOS在内的UNIX机器都是多用户环境)
但是,正如自制Wiki所说的那样,食谱找不到所有案例 /usr/local
并用我怀疑我们被困的选定目录代替它们 /usr/local
.
其他提示
我也使用自制的,可以确认它是完全安全的。引用 安装 官方页面 自制常见问题解答:
帮自己一个忙,选择
/usr/local
这很容易
/usr/local/bin
已经在你的PATH
.这很容易
如果其依赖关系不在 /usr或 /usr /local中,则构建脚本会破坏。我们为自制公式进行了修复(尽管我们并不总是测试它),但是您会发现许多RubyGems和Python设置脚本中断,这是我们控制之外的东西。- 它是安全的
苹果公司符合Posix,并将这个目录留给了我们。这意味着没有/usr/local
默认情况下目录,因此无需担心弄乱现有工具。如果您打算安装取决于啤酒的宝石,请节省一堆麻烦,然后安装到
/usr/local
!告诉宝石在非标准目录中查找标题和迪利布斯并不是微不足道的。如果您选择
/usr/local
, ,一切都“工作!”
我只要添加 做事作为根是一个非常糟糕的主意, , 所以 chown
ing /usr/local
对我来说似乎不仅合理(这不是OSX上的系统),而且还 理智.
您的权限尚不正确(尚未正确)。只需运行您列出的命令,就可以了。
如果您还有其他问题,请记住 brew doctor
能帮你!
如果您使用的是自制的,则应将写入权限给特定组(要么 admin
或者 staff
),因此可以在该组中的用户之间共享文件。
例如:
sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew
然后分配应该访问的用户 brew
命令该组(通过以下方式检查您的组: id -Gn
).
然后在与 brew
, ,不要与 sudo
.
仍然有一些权限问题,运行 brew doctor
解决问题。
物有所值, /usr/local
OS X不被视为“系统”文件夹,并且在全新的Snow Leopard安装上,该文件夹是空的。
该文件夹中的任何根所有内容都是 sudo make install
在其他软件上,或在双击之后给您密码 .pkg
想把东西倒入 /usr/local
.
拥有 /usr/local
已经在两台机器上“为我工作”了一年多。
一个人是,如果您已经安装了MySQL(不使用Homebrew)并Chown文件,那么它可能将无法再看到其数据库(因此您必须将它们恢复到任何用户MySQL作为运行中的任何用户)
如自制1.0.0:
无家可归者不再需要拥有 /usr /local的所有权。如果您希望您可以返回 /usr /local返回其默认所有权,则使用:sudo chown root:wheel /usr /local
我认为用户可以拥有 写许可 至 /usr/local
- 毕竟,这意味着您不使用 sudo
在每个构建脚本上。我不喜欢普通用户的想法 拥有 /usr/local
. 。我宁愿拥有根(或类似) /usr/local
, ,但是更改权限,以便用户(或至少某些特权组)可以写信给它。这似乎是概念上正确的方法。