Multiuser Homebrew privilegia

1

Eu tenho dois usuários no meu Mac. Ambos são eu, mas um é o modo de trabalho, o outro é o modo não-trabalho. Eu tenho um problema contínuo com a instalação via homebrew.

$ 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

É claro que a execução desse código sugerido resolve o problema - até que eu precise preparar a instalação usando meu outro usuário, então preciso alterar a propriedade novamente. Como posso definir as permissões para que ambos os usuários possam instalar com homebrew?

    
por steel 15.03.2017 / 02:22

1 resposta

2

Eu não sei sobre homebrew em particular, mas em teoria você poderia usar sudo para instalar o software. Em seguida, os arquivos são acessados com root privileges, que podem ou não ser o que você deseja.

Em geral, se você quiser que vários usuários sem privilégios possam gravar no mesmo local, não é o proprietário desse local que você deseja alterar, mas o grupo . Você poderia criar um grupo chamado homebrewers :

sudo dscl . -create /Groups/homebrewers

Você então deseja encontrar um ID de grupo que não existe. Para isso eu usei:

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

Descobri que o maior número de grupo em uso era 501, então 4200 estavam disponíveis. Por isso, defino o PrimaryGroupID para 4200 e o Password para * (não utilizado). Não se esqueça de definir estes! Se fizer isso, sua lista de grupos será corrompida e você provavelmente terá que inicializar no modo de usuário único para corrigi-la.

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

Em seguida, adicione seus dois usuários a esse grupo. O exemplo aqui usa nomes curtos (de whoami ) de user1 e user2 :

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

Observe que você pode ter que fazer logout e efetuar login novamente para que essas alterações entrem em vigor.

Finalmente, você desejará alterar o grupo do diretório para que seja homebrewers e suas permissões para serem graváveis em grupo:

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

Se você quiser, pode até mudar o proprietário para root para nenhum efeito negativo:

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

Todos os comandos mostrados aqui foram testados no Mac OS X 10.4.11 em um PowerBook G4. Muito mudou desde a mudança para a Intel, portanto, os comandos mostrados podem não funcionar exatamente como determinado em uma versão mais recente. Os conceitos subjacentes permanecerão os mesmos.

    
por 15.03.2017 / 03:42