¿Por qué se niega el permiso para que npm comience a usar node-dev?

Estoy intentando iniciar una aplicación node.js con un usuario con permissions bajos. Todos los files que conozco pertenecen al usuario correcto y tienen permissions razonablemente bien establecidos. Estoy tratando de usar un file de script para hacer esto. Invoco el script con este command

sudo su - nodejs ./start-apps.sh 

El script de shell ejecuta este command para iniciar la aplicación

 cd "/home/nodejs/my-app" npm start 

npm start está documentado aquí . Básicamente, extrae el command para usar fuera del file package.json, que en nuestra aplicación se ve así:

 // snip "scripts": { "start": "node-dev app" }, 

Y escupe el error:

 > my-app@0.1.0-build.100 start /home/nodejs/my-app > node-dev app sh: 1: node-dev: Permission denied npm ERR! spicoli-authorization@0.1.0-build.100 start: `node-dev app` npm ERR! Exit status 126 

Parece que está diciendo que está informando errores del command de shell. No creo que el problema sea acceder al command npm sí, porque si lo fuera, el permiso denegado se generaría antes de cualquier salida del command npm. Pero solo para descartarlo, aquí están los permissions para el command npm:

 $ sudo find / ! \( -type d \) -name npm -exec ls -lah {} \; -rwxr-xr-x 1 root root 274 Nov 12 20:22 /usr/local/src/node-v0.10.22/deps/npm/bin/npm -rwxr-xr-x 1 root root 274 Nov 12 20:22 /usr/local/lib/node_modules/npm/bin/npm lrwxrwxrwx 1 root root 38 Jan 14 07:49 /usr/local/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js 

Parece que todos deberían poder ejecutarlo.

Los permissions para node-dev ven así:

 $ sudo find / ! \( -type d \) -name node-dev -exec ls -lah {} \; -rwxr-xr-x 1 nodejs nodejs 193 Mar 3 2013 /home/nodejs/.npm/node-dev/2.1.4/package/bin/node-dev -rw-r--r-- 1 nodejs nodejs 193 Mar 3 2013 /home/nodejs/spicoli-authorization/node_modules/node-dev/bin/node-dev lrwxrwxrwx 1 root root 24 Jan 14 07:50 /home/nodejs/spicoli-authorization/node_modules/.bin/node-dev -> ../node-dev/bin/node-dev 

Ya he intentado conectar el enlace a nodejs:nodejs , pero el scrip experimenta el mismo error.

¿Hay algún problema de permissions de files que no veo con los files binarys? ¿O es esto un error específico de npm / node-dev ?

El segundo node-dev no es ejecutable, y el enlace simbólico apunta a eso. Aunque el enlace simbólico es ejecutable (los enlaces simbólicos siempre son 777), es el modo del file al que apunta lo que count; tenga en count que llamar a chmod en el enlace realmente cambia el modo del file al que apunta (los permissions de enlace simbólico nunca cambian).

Entonces quizás necesites agregar el bit ejecutable para todos:

 chmod 755 /home/nodejs/spicoli-authorization/node_modules/.bin/node-dev