aviso: diretório gravável mundial inseguro / usr / local / bin no PATH, modo 040777

172

Toda vez que eu executo este comando rails server:

aviso: diretório gravável mundial inseguro / usr / local / bin no PATH, modo 040777

Procurei uma solução aqui e eles disseram para digitar: chmod go-w /usr/local/bin

Mas eu recebo este erro:

chmod: Não foi possível alterar o modo de arquivo em / usr / local / bin: Operação não permitida

Estou usando o OS X por sinal.

Xandman
fonte
7
Eu tive o mesmo problema logo após instalar o software de um dongle USB de banda larga da T-Mobile e fiquei imaginando se era o responsável por fazê-lo. Por acaso, você também está usando um dongle?
Peter Nixey
5
Sim eu consegui depois de instalar um Virgin (Austrália) dongle USB móvel
nocache
3
Ó meu Deus sério? Obrigado por esta informação! Também notei que depois de tentar executar o software dongle da T-Mobile, ele f * minhas permissões.
Oto Brglez
Eu estou usando um dongle LTE pela UA (operadora japonesa), que também requer alguma feitiçaria linha de comando para começar a trabalhar ...
Nicolas Miari

Respostas:

278

Você precisará ter acesso root para fazer isso. Se você ainda não é o usuário administrativo, efetue login como administrador. Em seguida, use 'sudo' para alterar as permissões:

sudo chmod go-w /usr/local/bin

Obviamente, isso significa que você não pode mais instalar material em / usr / local / bin, exceto via 'sudo', mas provavelmente não deveria fazer isso de qualquer maneira.

Jonathan Leffler
fonte
se eu digitar o comando acima, recebo: sudo: / etc / sudoers é o modo 0644, deve ser 0440 Falha na segmentação
Xandman
@ Xandman: Não sei o que há com a falha de segmentação; os programas não devem fazer isso (especialmente os relacionados à segurança, como o sudo). Claramente, alguém violou as permissões de arquivo no seu sistema - eu recomendo a leitura do ato anti-motim. Enquanto isso, você provavelmente está enfrentando uma situação de galinha e ovo; você não pode usar 'sudo' até corrigir as permissões em / etc / sudoers e não pode corrigir as permissões em / etc / sudoers sem usar 'sudo'. Eu não tenho certeza que a melhor solução é ...
Jonathan Leffler
1
Acho que deveria me enforcar então. Estou mexendo no meu MAC desde que mudei do Windows. Tentei fazer deste um laptop com Windows. Eu provavelmente fiz algo estúpido
Xandman
1
Obrigado pelo comentário Jonathan, você me deu uma idéia para verificar as permissões. Reparei as permissões com o Utilitário de Disco e, quando executei o comando: sudo chmod, vá para w / usr / local / bin, não será possível.
Xandman 17/10/10
@ Xandman: Não há necessidade do enforcamento até que você prove ser um reincidente. Você diz "não vai passar" - de que maneira isso não está funcionando? Com 'sudo', você fornece sua própria senha (com 'su', você fornece a senha do usuário de destino - raiz, normalmente). Para resolver um pouco disso, talvez seja necessário ativar o logon root (Preferências do Sistema como administrador, IIRC) e corrigir as permissões como root. Isso supõe que você agora saiba o suficiente para não se enforcar acidentalmente. Ou talvez seja melhor refazer a instalação do zero; depende de quanto você modificou as permissões.
Jonathan Leffler
63

Eu tive o mesmo erro aqui no MacOSX 10.6.8 - parece que o ruby ​​verifica se algum diretório (incluindo os pais) no caminho é gravável no mundo. No meu caso, não havia um / usr / local / bin presente, pois nada o havia criado.

então eu tive que fazer

sudo chmod 775 /usr/local

para se livrar do aviso.

Uma pergunta aqui é: qualquer processo não root: wheel no MacOS precisa criar algo em / usr / local?

Peterk
fonte
9
Sim,775 => root(7) group(7) others(5), 7 => read(4) + write(2) + execute(1), and 5 => read(4) + execute(1)
crizCraig
8

Experimentar: sudo chmod go-w /usr/local/bin

O diretório / usr / local / bin pertence à conta root(ou seja, administrador), portanto, mesmo que você possa gravá-lo, não poderá alterar as permissões nele. O sudocomando significa "executar o seguinte comando como root" e funciona como clicar no ícone de cadeado nas caixas de diálogo Preferências do sistema.

Jander
fonte
7

Eu tive o mesmo problema no OSX. Pode ser corrigido executando Utilitários de Disco para Reparar Permissões. Concordo com Peter Nixey: no meu caso, é causado quando meu dongle 3G instala ou reinstala seu driver. Reparar permissões posteriormente corrige o problema.

Larry Hynes
fonte
7

Estou usando o leão da montanha. O que fiz foi procurar / usr / local e obter informações. Nele há compartilhamento e permissões. Verifique se apenas o usuário e o administrador são os únicos que têm permissões de leitura e gravação. Qualquer outra pessoa deve ter apenas acesso de leitura. Isso resolveu o meu problema.

Normalmente, são úteis os utilitários de execução do disco e as permissões de reparo.

Muendo
fonte
3

Mesmo aqui, aparentemente minha pasta / usr / local era gravável mundialmente, então eu a criei.

# chmod 755 /usr/local

Também parecia que um dongle móvel Hauwei que eu havia usado instalara diretórios graváveis ​​no mundo em / usr / local também

Senhor P
fonte
3

Se você estiver executando o OSX e obtendo isso com frequência, outra coisa boa a considerar é usar uma ferramenta interna de correção de permissões do OSX. Se você não alterou o modo de seus diretórios, algo mais mudou e há uma chance de que outros diretórios também tenham permissões excessivas - essa ferramenta os redefinirá para os padrões de fábrica, o que é uma boa idéia de segurança. Há um ótimo guia sobre o stackextange da Apple sobre esse mesmo processo .

Kyle Hotchkiss
fonte
3

Você precisa correr

sudo chmod o-w -R /usr/local 
Jai Kumar Rajput
fonte
2
para mim -R deve ser diretamente após chmodsudo chmod -R o-w /usr/local/
bormat
2

Até me deparei com um problema semelhante. Eu uso o KDE no ubuntu 12 e, enquanto brincava na minha pasta pessoal, acidentalmente alterei as permissões do Grupo e de Outros, pois "pode ​​visualizar e modificar o conteúdo" clicando com o botão direito do mouse na minha pasta pessoal e, em seguida, nas propriedades e esqueci tudo sobre ele.

Meu aviso foi:

warning: Insecure world writable dir /home/my_home_folder in PATH, mode 040777

Então, no meu caso, era a pasta pessoal. Desfiz as modificações das permissões e parei de receber esses avisos ao executar o servidor Rails ou executar tarefas rake para executar meus testes.

Arkiver
fonte
1

Também estou tendo exatamente o mesmo problema com os dois / usr / local / bin e / etc / sudoers no OSX Snow lepard. Mesmo quando eu entrei como administrador e tentei alterar as permissões pelo terminal, ele ainda diz "Operação não permitido ". E fiz o seguinte para obter a permissão dessas pastas.

No terminal, acessei o arquivo / etc / sudoers e, usando o editor de pico, adicionei o seguinte código: nome de usuário ALL = (ALL) ALL Substitua "nome de usuário" pelo nome da sua conta do MAC OS

Sayanee
fonte
0

Eu tive o mesmo erro aqui no MacOSX 10.11 - parece que o ruby ​​verifica se algum diretório (incluindo os pais) no caminho é gravável no mundo. No meu caso, não havia um / usr / local / bin presente, pois nada o havia criado.

Execute este comando no seu terminal. Tente este sudo chmod 775 / usr / local. Depois disso, se você tiver alguma senha no seu mac, precisará inserir a senha. Agora esse problema será corrigido.

Mandeep Singh
fonte
0

Isso deve resolver seu problema: chmod go-w {/path/of/user}

aphexlog
fonte