我试图找出如何通过node_modules目录获取权限。这就是问题......
user1
转到包含package.json的文件夹并运行npm install
,从而生成包含所有者和组node_modules
的{{1}}目录。
user1
然后转到该文件夹(它是共享文件夹)并尝试运行类似user2
的内容,但他们没有对此目录的权限,因此它失败。< / p>
好的,那很好..所以我npm install --save some_dep
node_modules是两个用户所在的共享组。
现在chown -R
可以成功运行他的命令,从而生成文件夹user2
。但现在node_modules/some_dep
无法访问此文件夹。
所以我尝试在user1
目录上使用setgid权限。像node_modules
这样的东西。结果与之前完全相同 - 当用户运行NPM命令时,生成的目录获取错误的组和权限。
所以我尝试使用ACL,但结果又一样..运行NPM命令的用户产生的目录不会尊重主机文件夹的权限。
这可能与NPM依赖关系的构建方式有关。也许他们是在其他地方建造然后搬家的?
有没有办法设置对该目录和所有未来子目录有效的权限,以便我可以使其工作?
我可以一直以root身份运行所有东西......但这显然不太理想。
答案 0 :(得分:1)
这似乎是由于npm的设计缺陷造成的。在创建node_modules文件夹时,npm(由于无人能解释的原因)明确地对文件夹执行$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save('outputfiles/Listado.xlsx');
$url = Router::url('/outputfiles/', true).'Listado.xlsx';
$this->set(array('url' =>$url,'_serialize' => array('url')));
。而不是依靠操作系统来正确设置权限,npm会出现问题,弄乱你的权限,并且几乎不可能在没有定期手动运行chmod / chown的情况下在共享环境中使用它。
这可能是人们试图使用npm的权限相关问题的无穷追踪的源头。
开发人员承诺(第n次)此问题在以后的版本中得到修复:https://github.com/npm/npm/blob/db9cde008ce855bdac801bb6649cbfb5bb7911ac/changelogs/CHANGELOG-2.md#v2120-2015-06-18