Por que o node.js precisa de permissões administrativas para acessar meu compartilhamento do Windows, embora a premissa do compartilhamento seja 0777

2

Eu tenho o Ubuntu 14.04 em execução como um convidado VMware no meu host do Windows 8.1.

Eu compartilhei uma pasta no meu Windows Host e ela é montada no guest do Ubuntu na inicialização usando esta entrada no fstab:

//myhost/work /work cifs credentials=/home/user/.smbcredentials,noserverino,nounix,uid=user,gid=user,file_mode=0777,dir_mode=0777 0 0

Por que, ao usar o nó na interação com o compartilhamento, sudo é necessário?

Por exemplo, se eu usar npm para instalar algo ( npm install --no-bin-links ) no compartilhamento sem sudo , recebo um monte de erros 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

Se eu instalá-lo usando sudo npm install --no-bin-links , tudo funciona bem.

O mesmo problema ocorre quando uso gulp para assistir e criar meu projeto: gulp watch resulta no mesmo chmod erros ao criar, mas sudo gulp watch funciona bem.

Como o compartilhamento está definido como 0777 , todos podem ler e gravar nele. Por que preciso usar sudo nos scripts de nós?

    
por F21 29.09.2014 / 12:42

1 resposta

2

A pasta é de propriedade de um usuário diferente. Somente o proprietário da pasta ou raiz pode alterar as permissões usando chmod . Portanto, no meu caso, sudo é necessário, pois meu usuário não possui a pasta.

    
por F21 29.09.2014 / 13:22