Ubuntu 14.04 s’exécute en tant qu’invité VMware sur mon hôte Windows 8.1.
J'ai partagé un dossier sur mon hôte Windows et il est monté au démarrage de l'invité Ubuntu à l'aide de cette entrée dans fstab:
//myhost/work /work cifs credentials=/home/user/.smbcredentials,noserverino,nounix,uid=user,gid=user,file_mode=0777,dir_mode=0777 0 0
Pourquoi est-il nécessaire d'utiliser Sudo
lorsque vous utilisez node pour interagir avec le partage?
Par exemple, si j'utilise npm
pour installer quelque chose (npm install --no-bin-links
) sur le partage sans Sudo
, je reçois un tas d'erreurs chmod
:
npm ERR! Error: EPERM, chmod '/work/project/src/node_modules/webpack/package.json'
npm ERR! { [Error: EPERM, chmod '/work/project/src/node_modules/webpack/package.json']
npm ERR! errno: 50,
npm ERR! code: 'EPERM',
npm ERR! path: '/work/project/src/node_modules/webpack/package.json',
npm ERR! fstream_finish_call: 'chmod',
npm ERR! fstream_type: 'File',
npm ERR! fstream_path: '/work/project/src/node_modules/webpack/package.json',
npm ERR! fstream_class: 'FileWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/lib/node_modules/npm/node_modules/fstream/lib/writer.js:308:19',
npm ERR! 'Object.oncomplete (evalmachine.<anonymous>:107:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /work/project/src/npm-debug.log
Si je l'installe avec Sudo npm install --no-bin-links
, tout fonctionne correctement.
Le même problème se produit lorsque j'utilise gulp
pour regarder et construire mon projet: gulp watch
entraîne les mêmes erreurs chmod
lors de la construction, mais Sudo gulp watch
fonctionne correctement.
Comme le partage est défini sur 0777
, tout le monde peut le lire et l'écrire. Pourquoi ai-je besoin d'utiliser Sudo
sur les scripts de noeud?
Le dossier appartient à un autre utilisateur. Seul le propriétaire du dossier ou de la racine peut modifier les autorisations à l'aide de chmod
. Par conséquent, dans mon cas, Sudo
est requis car mon utilisateur n'est pas propriétaire du dossier.