这个问题是询问/回答以前,我知道我的管理员用户帐户chown
打开是安全的/usr/local
,我已经git
用homebrew
(使用brew install git
)安装了该帐户。
sudo chown -R $USER:admin /usr/local
现在我想知道我是否应该将所有权更改回根。
谁拥有有关系吗/usr/local
?
注意:此问题面向 macOS,但也可能适用于 Unix 系统。
答案1
让我们从一些“历史”开始。/usr/local
通常用于存储未随基本操作系统安装的用户程序/数据。通常,当您使用 automake 从源代码制作程序时,它们将安装在/usr/local
.由于主操作系统本身并不依赖于该目录,因此权限实际上取决于管理员的偏好。
现在,我们还可以从另一个角度来考虑这个问题。当您拥有某个目录的用户+r
或+w
权限时+x
,这些权限将仅适用于该目录的所有者。通常,用户权限高于组或所有权限,这意味着 的所有者/usr/local
将拥有高于其他帐户的权限。现在,如果组和/或所有权限等于或大于该目录上用户的权限,那么实际所有者是谁并不那么重要。
因此,您需要问自己的问题是哪些用户将使用位于 中的“东西” /usr/local
,并且您关心其他用户是否可以访问相同的“东西”?您的答案可能不仅会影响拥有该目录的用户,还会影响该目录上的用户、组和所有权限。
使用 home-brew,通常最好让管理 home-brew 软件包系统的用户拥有此目录。对于更多的共享系统,更常见的是该目录由 root 拥有,因为即使该目录是用户控制的,系统管理员通常也希望控制存放到该目录中的内容。
作为参考,下面是一个普通 Linux (Ubuntu) 计算机的示例,后面是一个普通 Mac OS X 计算机:
user@ubuntu:~$ ls -ld /usr/local
drwxr-xr-x 10 root root 4096 Sep 10 2013 /usr/local
Mac:~ user$ ls -ld /usr/local
drwxrwxr-x 12 root admin 408 12 Apr 04:32 /usr/local/