为什么 node.js 需要管理权限才能访问我的 Windows 共享,即使共享的权限是 0777

为什么 node.js 需要管理权限才能访问我的 Windows 共享,即使共享的权限是 0777

我的 Windows 8.1 主机上以 VMware 客户机身份运行 Ubuntu 14.04。

我已经在 Windows 主机上共享了一个文件夹,并使用 fstab 中的以下条目在启动时将其安装在 Ubuntu 客户机中:

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

为什么在使用节点与共享交互时sudo需要?

例如,如果我使用在没有 的情况下在共享上npm安装某些东西( ) ,我会收到一堆错误:npm install --no-bin-linkssudochmod

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

如果我使用它来安装它sudo npm install --no-bin-links,一切都正常工作。

gulp当我用来观察和构建我的项目时出现了同样的问题:构建时gulp watch出现同样的chmod错误,但sudo gulp watch运行正常。

由于共享设置为0777,每个人都可以对其进行读取和写入。为什么我需要sudo在节点脚本上使用?

答案1

该文件夹归其他用户所有。只有文件夹的所有者或 root 可以使用 更改权限chmod。因此,在我的情况下,sudo是必需的,因为我的用户不拥有该文件夹。

相关内容