題:
自製權限和需要醞釀更新的多個用戶
Meltemi
2012-03-01 02:17:35 UTC
view on stackexchange narkive permalink

我正在使用 Homebrew 來管理Lion 上的軟件包安裝(實際上是Lion Server,但這沒關係)

Homebrew已安裝一個用戶以下。現在,另一個用戶想添加一個軟件包,而Homebrew不滿意:

  $ brew updatefatal:無法創建'/usr/local/.git/index.lock':權限被拒絕。 :執行時失敗:git checkout -q master  

這被認為是不好的嗎?我認為使用 / usr / local / 進行安裝的優點之一是不需要 sudo 。但顯然我們做到了。

所有需要修改Homebrew的用戶都是 admin 組的成員。因此,我可以 chmod -R g + w / usr / local / ,但是擔心這會變本加厲或者造成安全問題?!

建議?

  $ ls -al /usr/local/.git/total 432drwxr-xr-x 14 ladmin admin 476 2月24日11:48 .drwxrwxr-x 14 root admin 476 2月9日15:27 ..- rw-r--r-- 1 ladmin管理員94 Feb 24 11:48 FETCH_HEAD-rw-r--r-- 1 ladmin admin 23 Feb 24 11:48 HEAD-rw-r--r-- 1 ladmin admin 41 Feb 9 15:28 ORIG_HEADdrwxr-xr-x 2 ladmin admin 68 Feb 9 15:27 branchs-rw-r--r-- 1 ladmin admin 218 Feb 9 15:27 config-rw-r--r- -1個ladmin管理員73 Feb 9 15:27 descriptiondrwxr-xr-x 12個ladmin admin 408 2月9日15:27 hooks-rw-r--r-- 1個ladmin admin 200272 Feb 24 11:48 indexdrwxr-xr-x 3 ladmin管理102 Feb 9 15:27 infodrwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 logsdrwxr-xr-x 4 ladmin管理136 Feb 9 15:27 objectsdrwxr-xr-x 5 ladmin管理170 Feb 9 15:27 refs  
五 答案:
Ian C.
2012-03-22 00:24:54 UTC
view on stackexchange narkive permalink

這被認為是不好的嗎?我認為使用/ usr / local /進行安裝的好處之一是不需要sudo。但是顯然我們可以。

Homebrew默認情況下會為單用戶訪問 / usr / local 進行設置。因此,您需要打開目錄樹的權限,以便由多個人來管理它。

人們不需要在這裡運行sudo來管理自製程序。您只需要更改一些權限。由於您已經擁有:

所有需要修改Homebrew的用戶都是管理組的成員。

您還需要做兩件事:

  1. 確保 / usr / local 下的所有內容都屬於 admin 組;並且
  2. 確保 admin 組中的任何人都可以寫入 / usr / local 下的任何內容。
  3. ol>

    在這種情況下,要進行的更改是:

      chgrp -R admin / usr / localchmod -R g + w / usr / localchgrp -R admin / Library / Caches / Homebrewchmod -R g + w / Library / Caches / Homebrew  

    ,並且 admin 組中的任何用戶都應能夠管理計算機上的自製程序安裝。如果您需要將用戶添加到管理組,可以這樣完成:

      dseditgroup -o edit -a <username> -t用戶admin  

    (該用戶將需要再次登錄才能獲得特權)。

    為了使計算機更加安全,您可能需要考慮創建自己的Homebrew分支,並在本地homebrew git存儲庫指向本地fork。這樣一來,您就可以根據自己的環境自定義Homebrew並控制人們可以使用 brew 命令安裝的軟件包的版本。由多個人來進行安裝,您可能會遇到版本問題或依賴性問題。

我有同樣的問題,並按建議更改了組所有權和組權限。 “釀酒醫生”仍然抱怨說即使我可以手動驗證我是否可以在此處寫入文件(例如,使用`echo“ hello”> / usr / local / include / testfile`),也不能寫入/ usr / local / include。我是管理組的成員。有調試的想法嗎?
這個解決方案對我有用,但是它不能解決Homebrew的本地緩存。我也建議運行:`chmod -R g + w / Library / Caches / Homebrew`
我在上面找到了一篇博客文章http://blog.strug.de/2012/06/my-homebrew-multi-user-setup/並改編了https://raw.githubusercontent.com/steshaw/shelly中的腳本/ master / bin / SetupMultiUserHomebrew
看來Homebrew現在已將緩存過渡到當前用戶的目錄。剛剛看到:==>將/ Library / Caches / Homebrew遷移到/Users/bluechain.admin/Library/Caches/Homebrew ... 在進行沖泡更新時。如果我正確地解釋了這一點,則意味著我們不再需要為Homebrew擁有一個可全局寫入的緩存目錄。
對於有此問題的高級Sierra用戶,您現在需要使用以下命令:sudo chown -R $(whoami)$(brew --prefix)/ *而不是上面的命令。從[這裡]得到它(https://github.com/Homebrew/brew/issues/3228)
默認情況下,新安裝的軟件還會具有“ g + with”權限嗎?我是否需要一遍又一遍地運行這些命令?
VizJS
2013-10-09 06:39:54 UTC
view on stackexchange narkive permalink

您可以通過管理員組或任何其他用戶組為多個用戶啟用自製權限。下面是略微擴展的配置方法:

該組需要管理本地自家安裝目錄。因此,將 / usr / local 分配給 admin 組(或您的首選組)並啟用組寫權限:

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

該組還需要權限,以便在 / Library / Caches / Homebrew em上對自製軟件的公式和源文件進行本地緩存>:

  chgrp -R admin / Library / Caches / Homebrewchmod -R g + w / Library / Caches / Homebrew  

如果遇到其他類似問題在從多個帳戶使用自製軟件時出現權限問題,請注意有問題的路徑並考慮嘗試相同的方法。

Leif Hanack在博客中發布了一個相似的解決方案,他在其中創建並配置了專用用戶

-更新2015-08-20

我最近再次使用此答案來設置具有自製訪問權限的訪客帳戶。為了從第二個管理員帳戶使用Cask,我還必須運行以下命令:

  chgrp -R admin / opt / homebrew-caskchmod -R g + w / opt / homebrew-cask  
zen
2015-08-17 02:44:20 UTC
view on stackexchange narkive permalink

我只是要評論已接受的答案(但尚無此聲譽。)

作為 Caskroom.io的用戶,我會還建議添加:

  sudo chown -R admin / opt / homebrew-casksudo chmod -R g + w / opt / homebrew-casksudo chmod -R g + w / Library / Caches / Homebrew /  

由於cask是自釀的非常有用的擴展,因此將其所有文件都放在 / opt / homebrew-cask

通過`/ opt`我猜你是說`/ usr / local`?因為在最近的OS X安裝中不存在`/ opt`,即使在自製安裝後也是如此。
在2016年6月,Homebrew-Cask(啤酒擴展)將其Caskroom文件夾的默認位置從/ opt / homebrew-cask移到了/ usr / local(或更準確地說是$(brew --prefix))。`因此,這個答案現在還沒有定論,但是在編寫時是有效的。 參見[移動默認的機房位置#21603](https://github.com/caskroom/homebrew-cask/issues/21603)
Asso
2015-07-09 07:08:56 UTC
view on stackexchange narkive permalink

您需要授予路徑許可。在命令行中運行它,你會很好的。它對我有用:

sudo chown -R $ USER / usr / local

iolsmit
2012-03-01 02:36:21 UTC
view on stackexchange narkive permalink

我會投票決定設置組權限-在我看來,這正是它的用途,不應造成安全問題。

  • 請勿使用sudo。

tl; dr Sudo很危險,因此您安裝了TextMate.app卻沒有安裝sudo。

Homebrew旨在在不使用sudo的情況下工作。您可以決定使用它,但我們強烈建議您不要使用它。如果您使用過sudo並遇到錯誤,則可能是原因。請不要提交錯誤報告,除非您可以在不使用sudo的情況下從頭重新安裝Homebrew之後就可以進行複制。

因此,您的建議是使用sudo chmod -R g + w / usr / local /`?
是的,但是您可能需要使用以下方法之一徵求第二意見:IRC(irc://irc.freenode.net/#machomebrew);郵件列表(homebrew@librelist.com); Twitter(http://twitter.com/machomebrew)


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...