Por que só posso executar o 'nó sudo' e não apenas 'nó'?

0

Acabei de receber um novo macbook e instalei node.js usando o instalador oficial.

Por alguma razão, só posso executar node.js usando sudo node e não apenas node. Eu verifiquei novamente o $ PATH e o caminho para o nó está lá.

nikke at Nicks-MacBook-Pro in ~
$ node
-bash: node: command not found
nikke at Nicks-MacBook-Pro in ~
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Users/nikke/.rvm/bin
nikke at Nicks-MacBook-Pro in ~
$ /usr/local/bin/node -v
-bash: /usr/local/bin/node: Permission denied
nikke at Nicks-MacBook-Pro in ~
$ sudo /usr/local/bin/node -v
v0.10.12

Meu colega tem o mesmo computador e ele pode executar o nó muito bem sem ter que fazer o sudo. Isso é normal? O que eu poderia fazer de errado? O instalador não disse nada sobre ter que fazer sudo.

Eu também estou tendo este problema com o git, por exemplo fazendo git commit também diz Permission denied.

Nick
fonte
2
Você pode nos mostrar o nó e seus diretórios direitos e proprietário por favor?
ssssteffff
Deixe-me adivinhar, o colega instalado node, certo? Qual é a saída de ls -l /usr/local/bin/node?
David Schwartz

Respostas:

1

Existem duas partes para este fenómeno - i & gt; localização ou ii & gt; o natureza , do arquivo pode exigir que você entre como administrador, pois ele pode agir de maneira a desestabilizar o sistema, ou você pode simplesmente NÃO ter as permissões necessárias para executar o arquivo.

Quanto a trabalhar no computador do colega, pode ser devido a uma variação dos fatores acima mencionados.

Tente alterar a permissão do arquivo (para o qual você pode precisar novamente de direitos de administrador). Se possível, você também pode tentar executá-lo em um local separado. Sudo faz o trabalho perfeitamente, elevando a sua posição como o administrador do sistema operacional (que tem os direitos necessários). Esta é uma das muitas verificações de segurança nativas do sistema operacional, para evitar alterações / danos acidentais do sistema.

CRIANÇA LEVADA: Seu local selecionado tem arquivos preciosos relacionados ao sistema, que o usuário não tem o direito de editar.

Além disso, seu amigo fez login como superusuário, usando

su

??

Em caso afirmativo, ele já efetuou login como superusuário e não precisa efetuar login novamente. Os privilégios do usuário root são indicados pelo # no final do prompt, em vez de $ .

Somu
fonte
Obrigado pela resposta detalhada! Vai verificar isso, na verdade sua sugestão de que ele pode correr su é válido.
Nick
@Nick: De nada .. :)
Somu
Você está certo, foi um problema de permissões no final. Meu colega fez sudo chmod go+rwx /usr/local/bin e então começou a funcionar! Obrigado novamente :)
Nick
0

Provavelmente porque o programa / usr / local / bin / node não pode ser executado por usuários "normais". Você aparentemente precisa ser o usuário root para executá-lo. É por isso que o sudo é necessário.

mdpc
fonte