当前位置:  开发笔记 > IOS > 正文

如何在多用户MacOS Sierra安装程序上使用Homebrew

如何解决《如何在多用户MacOSSierra安装程序上使用Homebrew》经验,为你挑选了4个好方法。

我有两台工程师共享的Mac.两者都有单独的用户帐户.两者都需要运行brew updatebrew install...偶尔为之.

如何设置这没有得到这样的错误: /usr/local must be writable!

是的,我可以UserA接受/usr/local每次他想使用brew 的权限(和相同UserB),但这似乎是很多不必要的麻烦.



1> user48151623..:

您还可以将组权限更改为管理员或您的两个用户所在的其他组:

chgrp -R admin /usr/local
chmod -R g+w /usr/local

原始来源:https://gist.github.com/jaibeee/9a4ea6aa9d428bc77925

更新:

在macOS High Sierra中,您无法更改所有者,组或权限/usr/local.因此,您必须更改子文件夹的组和权限:

chgrp -R admin /usr/local/*
chmod -R g+w /usr/local/*

更新 2018年9月,High Sierra 10.13.6

    确定brew前缀的路径,即.用于存储与使用homebrew相关的文件的路径

    检查系统上需要访问权限的所有用户是否brew都在admin组中

    可选如果用户需要访问brew,则将用户添加到管理组

    将需要访问/权限才能使用sudo命令

    将brew前缀路径设置为由admin组递归拥有

    将brew前缀路径设置为admin组中的所有用户可递归写入

    验证brew前缀的权限

    酿造


echo $(brew --prefix)
echo $(groups $(whoami))
sudo dseditgroup -o edit -a $(whoami) -t user admin
sudo chgrp -R admin $(brew --prefix) 
sudo chmod -R g+rwX $(brew --prefix)
ls -lah $(brew --prefix)


不要添加`sudo`以避免`不允许操作'.在命令中添加`/*`,即:`sudo chgrp -R admin $(brew --prefix)/*`.[源(https://github.com/Homebrew/brew/issues/3228)
这个解决方案很合理,但有些软件包可能会拒绝使用这些权限.例如,Postgres抛出:'FATAL:数据目录"/ usr/local/var/postgres"具有组或世界访问细节:权限应为u = rwx(0700).

2> Harald Nordg..:

Hombrew安装了软件包/usr/local,没有打破它安装的许多软件包,你无能为力.为所有用户添加读写权限,如下所示:

sudo chmod -R +rw /usr/local

请注意,由于这是一个系统文件夹,所有用户将共享相同的brew安装.一个用户可以删除其他人安装的软件包,依此类推.所以一定要协调以避免问题.


这似乎是一个巨大的安全风险.为什么不在管理组中为用户添加写权限?

3> Sliq..:

适用于macOS Mojave 10.14的Hacky解决方法

这是user4815162342答案的编辑版本,开箱即用对我来说不起作用。

    在“系统偏好设置”中,转到“用户和组”,单击左下角的锁定符号以解锁用户/组的创建,然后创建一个名为的新组brew-usergroup。将所有使用brew的用户添加到组中(如附件中来自德国macOS的屏幕截图)。

    在终端中,执行以下操作:

    echo $(brew --prefix)
    echo $(groups $(whoami))
    sudo dseditgroup -o edit -a $(whoami) -t user brew-usergroup
    sudo chgrp -R brew-usergroup $(brew --prefix)/*
    sudo chmod -R g+rwX $(brew --prefix)/*
    ls -lah $(brew --prefix)
    

    请注意,这不再更改Brew文件夹的权限(就像在其他答案中一样),它更改了brew文件夹的子文件夹/文件。 brew install现在应该可以正常工作而没有错误了。



4> DrPsychick..:

上面的方法工作正常,但是如果您希望新文件自动继承那些权限,请设置一个继承的ACL(否则,只有倒瓶的用户才能删除它)。在这里找到了如何执行此操作的提示:https : //gist.github.com/nelstrom/4988643

由于root运行一次(假设组“管理员”的所有用户都应该有机会获得):

cd /usr/local
chmod -R +a "group:admin allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" Homebrew Caskroom Cellar bin
chgrp -R admin Homebrew Caskroom Cellar bin
chmod -R g+rwX Homebrew Caskroom Cellar bin
ls -lae .

-els节目的ACL。

更新:现在我使用特定的目录(见上文),因为它失败了(例如内存不足)

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有