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

0

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

Por algum motivo, só posso executar o 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 .

    
por Nick 28.06.2013 / 18:41

2 respostas

1

Existem duas partes neste fenómeno - i > A localização ou ii > a natureza , do ficheiro pode requerer que inicie sessão como administrador 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 mencionados acima.

Tente alterar a permissão do arquivo (para o qual você pode precisar novamente dos 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). Essa é uma das muitas verificações de segurança nativas do sistema operacional, para evitar alterações / danos acidentais do sistema.

IMP: O 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 $ .

    
por 28.06.2013 / 21:34
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.

    
por 28.06.2013 / 19:03