Lion에서 Homebrew 를 사용하여 패키지 설치를 관리하고 있습니다 (실제로는 Lion 서버이지만 중요하지는 않습니다) .
Homebrew는 한 명의 사용자로 설치되었습니다. 이제 다른 사용자가 패키지를 추가하고 Homebrew가 만족스럽지 않습니다.
$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master
이것이 나쁜 것으로 간주됩니까? /usr/local/
설치 에 사용하는 것의 장점 중 하나는 필요하지 않다는 것 sudo
입니다. 그러나 우리는 분명히합니다.
Homebrew를 수정해야하는 모든 사용자는 관리자 그룹의 구성원입니다 . 그래서 나는 chmod -R g+w /usr/local/
이것이 무언가를 망치거나 보안 문제를 일으킬 것을 두려워 할 수 있습니까?!?
조언?
$ ls -al /usr/local/.git/
total 432
drwxr-xr-x 14 ladmin admin 476 Feb 24 11:48 .
drwxrwxr-x 14 root admin 476 Feb 9 15:27 ..
-rw-r--r-- 1 ladmin admin 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_HEAD
drwxr-xr-x 2 ladmin admin 68 Feb 9 15:27 branches
-rw-r--r-- 1 ladmin admin 218 Feb 9 15:27 config
-rw-r--r-- 1 ladmin admin 73 Feb 9 15:27 description
drwxr-xr-x 12 ladmin admin 408 Feb 9 15:27 hooks
-rw-r--r-- 1 ladmin admin 200272 Feb 24 11:48 index
drwxr-xr-x 3 ladmin admin 102 Feb 9 15:27 info
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 logs
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 objects
drwxr-xr-x 5 ladmin admin 170 Feb 9 15:27 refs
답변
이것이 나쁜 것으로 간주됩니까? 설치에 / usr / local /을 사용하는 이점 중 하나는 sudo가 필요 없다는 것입니다. 그러나 우리는 분명히합니다.
기본적으로 Homebrew는에 대한 단일 사용자 액세스를 위해 자체적으로 설정됩니다 /usr/local
. 따라서 둘 이상의 사람이 관리 할 수 있도록 디렉토리 트리에 대한 권한을 열어야합니다.
사람들은 홈 브루를 관리하기 위해 여기에서 sudo를 실행할 필요가 없습니다. 일부 권한 만 변경하면됩니다. 이미 가지고 있기 때문에 :
Homebrew를 수정해야하는 모든 사용자는 관리자 그룹의 구성원입니다.
두 가지 작업을 더 수행해야합니다.
- 아래의 모든 것이
/usr/local
그룹 에 속 하는지 확인하십시오admin
. 과 - 그룹의 모든 사람이
admin
아래의 내용에 쓸 수 있는지 확인하십시오/usr/local
.
이 경우 변경 사항은 다음과 같습니다.
chgrp -R admin /usr/local
chmod -R g+w /usr/local
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew
그리고 admin
그룹의 모든 사용자 는 머신에서 홈 브루 설치를 관리 할 수 있어야합니다. 관리 그룹에 사용자를 추가해야하는 경우 다음과 같이 수행 할 수 있습니다.
dseditgroup -o edit -a <username> -t user admin
해당 사용자는 권한을 부여 받기 위해 다시 로그인해야합니다.
머신에서 건강을 유지하려면 자체 Homebrew 포크 를 작성 하고 로컬 homebrew git 저장소가 로컬 포크를 가리 키도록 할 수 있습니다. 이를 통해 사용자 환경에 맞게 Homebrew를 사용자 정의하고 사람들이 brew
명령 으로 설치할 수있는 패키지 버전을 제어 할 수 있습니다. 여러 사람이 설치를 수행하면 버전 문제 또는 종속성 문제가 발생할 수 있습니다.
답변
관리자 그룹 또는 다른 사용자 그룹을 통해 둘 이상의 사용자에 대해 홈 브루 권한을 활성화 할 수 있습니다. 이를 구성하기위한 약간 확장 된 레시피는 다음과 같습니다.
그룹은 로컬 홈 브루어 설치 디렉토리를 관리해야합니다. 따라서 / usr / local 을 관리자 그룹 (또는 선호하는 그룹)에 할당 하고 그룹 쓰기 권한을 활성화하십시오.
chgrp -R admin /usr/local
chmod -R g+w /usr/local
이 그룹은 / Library / Caches / Homebrew 에서 homebrew의 로컬 수식 및 소스 파일 캐시에 대한 권한도 필요합니다 .
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew
여러 계정에서 homebrew를 사용하는 동안 유사한 권한 문제가 발생하면 문제가되는 경로를 기록하고 동일한 방법을 시도해보십시오.
레이프 Hanack은 블로그에있다 유사한 솔루션 그가 만들고 전용 사용자 그룹 구성, 양조 목적으로합니다.
–2015-08-20 업데이트
최근에이 답변을 다시 사용하여 홈 브루 액세스 권한이있는 게스트 계정을 설정했습니다. 두 번째 관리자 계정에서 Cask를 사용하려면 다음 명령도 실행해야했습니다.
chgrp -R admin /opt/homebrew-cask
chmod -R g+w /opt/homebrew-cask
답변
나는 단지 받아 들여진 대답에 대해 언급하려고했지만 (아직 평판이 없다.)
Caskroom.io 사용자로서 다음을 추가하는 것이 좋습니다.
sudo chown -R admin /opt/homebrew-cask
sudo chmod -R g+w /opt/homebrew-cask
sudo chmod -R g+w /Library/Caches/Homebrew/
homebrew에 매우 유용한 확장 인 cask가 모든 파일을 /opt/homebrew-cask
답변
경로에 권한을 부여해야합니다. 이것을 커맨드 라인에서 실행하면 괜찮을 것입니다. 그것은 나를 위해 일했다 :
sudo chown -R $ USER / usr / local
답변
그룹 권한을 설정 한 것에 대해 투표하고 싶습니다. 보안 문제를 일으키지 않아야하는 것 같습니다.
- sudo를 사용하지 마십시오.
tl; dr Sudo는 위험하므로 sudo없이 TextMate.app를 설치했습니다.
Homebrew는 sudo를 사용하지 않고 작동하도록 설계되었습니다. 사용하기로 결정할 수 있지만 사용하지 않는 것이 좋습니다. sudo를 사용하고 버그가 발생하면 원인 일 수 있습니다. sudo를 사용하지 않고 Homebrew를 처음부터 다시 설치 한 후 재현 할 수 없다면 버그 보고서를 제출하지 마십시오.