多用户自制权限

多用户自制权限

我的 Mac 上有两个用户。两者都是我,但一种是工作模式,另一种是非工作模式。我在通过自制软件安装时遇到了一个持续的问题。

$ brew install x
Error: Can't create update lock in /usr/local/var/homebrew/locks!
Fix permissions by running:
sudo chown -R $(whoami) /usr/local/var/homebrew

当然,执行这个建议的代码可以解决问题——直到我需要使用其他用户进行brew install,然后我需要再次更改所有权。如何设置权限以便两个用户都可以使用自制程序安装?

答案1

我不知道homebrew具体是什么,但理论上你可以用来sudo安装软件。然后使用权限访问文件root,这可能是也可能不是您想要的。


但一般来说,如果您希望多个非特权用户能够写入同一位置,则不适合所有者您想要更改的位置,但它团体。您可以创建一个名为的组homebrewers

sudo dscl . -create /Groups/homebrewers

然后您会想要查找不存在的组 ID。为此我使用了:

dscl . -list /Groups                          \
| sed 's@^@/Groups/@'                         \
| ( while read grp;                           \
    do dscl . -read "${grp}" PrimaryGroupID;  \
    done )                                    \
| sort -snk 2

我发现使用的最高组号是501,所以4200可用。所以,我设置了PrimaryGroupIDto4200Passwordto *(未使用)。不要忘记设置这些!如果这样做,您的组列表将被损坏,并且您可能必须启动到单用户模式才能更正它。

sudo dscl . -append /Groups/homebrewers PrimaryGroupID 4200
sudo dscl . -append /Groups/homebrewers Password '*'

然后将您的两个用户添加到该组。此处的示例使用和whoami的短名称(来自 ):user1user2

sudo dscl . -append /Groups/homebrewers GroupMembership user1
sudo dscl . -append /Groups/homebrewers GroupMembership user2

请注意,您可能必须注销并重新登录才能使这些更改生效。

最后,您需要将目录的组更改为组可写,homebrewers并将其权限更改为组可写:

chown -R :homebrewers /usr/local/var/homebrew
chmod -R g+w /usr/local/var/homebrew

如果需要,您甚至可以将所有者更改为root无不良影响:

sudo chown -R root /usr/local/var/homebrew

此处显示的所有命令均在 PowerBook G4 上的 Mac OS X 10.4.11 上进行了测试。自从迁移到英特尔以来,发生了很多变化,因此所示的命令可能无法完全按照新版本上给出的方式工作。基本概念将保持不变。

相关内容