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.
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?
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.