运行 具有超级用户访问权限的 pm2

Run pm2 with super user access

我有一个节点应用程序,我想 运行 具有 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/' }

我已经用超级用户 运行ning pm2,用 777 修改 .pm2 目录,但没有成功。

我该如何解决这个问题?

谢谢。

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

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

的权限

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

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

以上两种方法都有效,但使用 group 应该更受欢迎,因为如果我们希望允许更多用户访问同一目录,我们可以只添加组中多一个用户,其他一切都一样。

希望它能澄清,如果有任何需要进一步澄清的地方,请在评论中告诉我。