1

我正在尝试减少正确安装以与 Symfony 和 Assetic 一起运行。我有权限问题。这是在 Ubuntu 12.04 LTS 上。

如何设置权限以便无需 sudo 即可运行 app/console assetic:dump?

我安装的较少使用

sudo npm install -g less

node_modules 安装在 /usr/lib/node_modules

用户“nobody”是 /usr/lib/node_modules/less 组的所有者是我的用户组。

我在 config.yml 中设置了 node、node_paths 和 apply_to。

它在 Symfony 开发环境中的浏览器上运行良好。我的 less 文件很高兴被编译成 css。

如果我运行 app/console assetic:dump 它会显示“找不到模块'less'”。我花了一段时间才发现这是一个权限问题。如果我运行 sudo assetic:dump,它会起作用。

使用 sudo 运行 app/console 似乎是错误的。我需要更改 /usr/lib/node_modules 的所有权吗?一切似乎都具有世界和组读取权限。

我不明白 Apache 如何在 www-data 下正常运行它。

4

1 回答 1

0
chown $(id -un):$(id -Gn | cut -d' ' -f1) /usr/lib/node_modules

有了这个,您将不再需要使用 sudo 进行安装。

解释

  1. id -unwhoami与在终端中打印您的用户名相同
  2. id -Gn打印您所在的组,用空格分隔。
  3. id -Gn | cut -d' ' -f1-> 这部分取第一组
  4. chown [username]:[group] [filename]更改文件的所有者

因此,基本上您将所有者从root用户更改为您自己。

缺点和解决方法

您的 Mac 上的其他用户将无法修改此文件,因为您拥有它。但是您也可以通过为组设置权限来让他们

chmod 775 /usr/lib/node_modules
于 2018-06-27T18:17:00.210 回答