【问题标题】:Run pm2 with super user access以超级用户访问权限运行 pm2
【发布时间】:2018-01-11 14:44:46
【问题描述】:

我有一个节点应用程序,我想以 root 访问权限运行,我已经尝试使用它运行它

sudo pm2 start <my-app> --watch

我真正需要它的原因是因为在我的代码中有一个创建新文件夹的命令它仍然失败,只是为了提供信息,我在我的节点应用程序中使用 hapijs 框架,

它给了我这个错误

errno: -13,
0|<my-app> |   code: 'EACCES',
0|<my-app> |   syscall: 'mkdir',
0|<my-app> |   path: 'uploaded_file/122334455/' }

我试过用超级用户运行 pm2,用 777 修改 .pm2 目录但没有运气。

我应该如何解决这个问题?

谢谢。

【问题讨论】:

  • 你还需要一些有问题的东西,因为不清楚你要在什么位置创建该文件夹,it is because in my code there is a command to create a new folder 通过命令你在这里的意思是 mkdirSync from fs 模块 你为什么要授予 .pm2 文件夹 777 权限,你是要在 .pm2 文件夹中创建目录吗? ?
  • @vinitpayal 是的,我使用 mkdirSync,这就是我在搜索类似问题后得到的结果
  • 好的,您尝试在什么位置创建该目录仍然没有将 777 分配给 .pm2 文件夹,因为该文件夹仅用于存储 pm2 配置?
  • @vinitpayal /my-app/uploaded_file

标签: node.js hapijs pm2


【解决方案1】:

首先授予 777 权限不是一个好的解决方案,因为它会将您的用户上传的内容暴露给任何人阅读,而授予 777 权限到 .pm2 目录 不会'没有任何意义,因为它只存储 pm2 的配置,即使您想授予 777 权限,您也应该更改 /my-app/uploaded_files/ 的权限。

这里更好的方法是允许 pm2 进程 的所有者写入/my-app/uploaded_files/ 文件夹,这可以通过两种方式完成:-

  • 通过创建一个用户组并在该组中添加pm2进程所有者create user group and adding user in group in Linux),然后将/my-app/uploaded_files/目录的所有者更改为group_name 您使用sudo chown -R :group_name /my-app/uploaded_files/ 创建的
  • 通过使用sudo chown -R user_name: /my-app/uploaded_files//my-app/uploaded_files/ 文件夹的所有者更改为用户pm2

上述两种方法都可以工作,但使用 group 应该更可取,因为将来如果我们想允许多一个用户访问同一目录,我们可以再添加一个用户到组和其他一切都一样。

希望它澄清,如果需要更多澄清,请在 cmets 中告诉我。

【讨论】:

    【解决方案2】:

    原来我必须修改目标文件夹的权限 uploaded_file 感谢@vinitpayal 鼓励我来解决这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多