Obtenha erros de permissão

1

No Ubuntu, quando me deparo com um erro de permissão, simplesmente executo o comando como o sudo normalmente funciona. Não é o caso no OSX:

$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
 From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
error: unable to unlink old 'Library/Aliases/0mq' (Permission denied)

como sudo:

$ sudo ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
-e:69: warning: Insecure world writable dir /usr/local in PATH, mode 040777
Don't run this as root!

Não tenho certeza do que devo fazer. Eu me deparo com esse tipo de coisa o tempo todo e enquanto eu poderia sudo chown os diretórios relevantes eu farei isso o tempo todo.

Eu não posso sudo brew install como a cerveja se recusa covardemente a operar como superusuário. Eu estou apenas confuso porque eu sinto que estou tentando fazer algo estúpido, e ainda o equivalente do Ubuntu, sudo apt-get install é considerado a maneira correta de instalar novos aplicativos?

Eu também poderia criar um novo usuário que é realmente um super usuário e instalar coisas como ele, mas o Ubuntu não permite que você faça isso porque é uma má idéia e concordo em ter um usuário com habilidades limitadas e sudoing somente quando necessário Parece uma idéia muito melhor.

    
por Starkers 08.05.2014 / 10:40

1 resposta

1

/usr/local/ não deve ser mundialmente gravável; isso é uma coisa ruim - e a mensagem de erro / aviso está certa em apontar. (eu me pergunto como ficou assim em primeiro lugar?)

Além disso, você nem sempre precisa recorrer a diretórios chown'ing - você deve considerar as posses e permissões do usuário / grupo como partes do mesmo quebra-cabeça.

Nesse caso, sugiro que você remova o bit de gravação do mundo de / usr / local e tente novamente.

sudo chmod o-w /usr/local

EDITAR:

Encontrei isso no script que você está tentando executar.

This script requires the user #{ENV['USER']} to be an Administrator. If this
sucks for you then you can install Homebrew in your home directory or however
you please; please refer to our homepage. If you still want to use this script
set your user to be an Administrator in System Preferences or 'su' to a
non-root user with Administrator privileges.

Portanto, sugiro que você se adicione temporariamente como administrador. Acho que isso provavelmente apenas adiciona você ao grupo de administradores. Se assim for, você também pode faça / usr / local (e quaisquer outros subdirmes) grupo de propriedade / gravável por qualquer pessoa no grupo de administração.

sudo chgrp admin /usr/local
sudo chmod g+w /usr/local

Isso seria muito mais aceitável do ponto de vista da segurança do que mudanças gerais. Eu vi algumas "soluções" onde as pessoas usam todo o conteúdo / usr / local para o seu próprio id.

Tut tut tut.

Ou a outra maneira (como o acima sugere) para instalar como não-raiz em um diretório home em algum lugar.

    
por 08.05.2014 / 11:18

Tags