¿Por qué solo puedo ejecutar 'sudo node' y no solo 'node'?

0

Acabo de recibir un nuevo macbook e instalé node.js con el instalador oficial.

Por alguna razón solo puedo ejecutar node.js usando sudo node y no solo node. Revisé dos veces el $ PATH y la ruta al nodo está ahí.

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

Mi colega tiene la misma computadora y puede ejecutar el nodo bien sin tener que hacer sudo. ¿Esto es normal? ¿Qué podría hacer mal? El instalador no dijo nada sobre tener que hacer sudo.

También tengo este problema con git, por ej. obra git commit también dice Permission denied.

Nick
fuente
2
¿Nos puede mostrar el nodo y sus derechos de propietario y directorios por favor?
ssssteffff
Déjame adivinar, el colega instalado. node, ¿derecho? ¿Cuál es la salida de ls -l /usr/local/bin/node?
David Schwartz

Respuestas:

1

Hay dos partes de este fenómeno: i & gt; The ubicación o ii & gt; el naturaleza Es posible que la parte del archivo requiera que inicie sesión como administrador, ya que puede actuar de una manera que desestabilice el sistema, o que NO tenga los permisos necesarios para ejecutar el archivo.

En cuanto a que funciona en la computadora del colega, puede deberse a una variación de los factores mencionados anteriormente.

Intente cambiar el permiso del archivo (para lo cual puede necesitar nuevamente derechos de administrador). Si es posible, también puede intentar ejecutarlo en una ubicación separada. Sudo hace el trabajo perfectamente elevando su posición como administrador del sistema operativo (que tiene los derechos necesarios). Este es uno de los muchos controles de seguridad nativos del sistema operativo, para evitar cambios / daños accidentales del sistema.

DIABLILLO: Su ubicación seleccionada tiene preciosos archivos relacionados con el sistema, que el usuario no tiene derecho a editar.

También, ¿tu amigo inició sesión previamente como superusuario, usando

su

??

Si es así, entonces ya inició sesión como superusuario y no necesita iniciar sesión nuevamente. Los privilegios de usuario root están indicados por # al final del aviso en lugar de PS .

Somu
fuente
¡Gracias por la respuesta detallada! Lo comprobará, de hecho su sugerencia de que podría correr su es válida.
Nick
@Nick: de nada ... :)
Somu
Tienes razón, fue un problema de permisos al final. Mi colega hizo sudo chmod go+rwx /usr/local/bin y luego empezó a funcionar! Gracias de nuevo :)
Nick
0

Probablemente porque los usuarios "normales" no pueden ejecutar el programa / usr / local / bin / node. Aparentemente necesitas ser el usuario root para ejecutarlo. Es por eso que se necesita sudo.

mdpc
fuente