以超级用户访问权限运行pm2

时间:2018-01-11 05:12:02

标签: node.js hapijs pm2

我有一个节点应用,我希望以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目录但没有运气。

我该怎么做才能解决这个问题?

三江源。

2 个答案:

答案 0 :(得分:3)

首先授予777权限不是一个好的解决方案,因为它会将您的用户上传的内容暴露给任何人阅读,并且给予 .pm2目录 的777权限#n&# 39;没有任何意义,因为它只存储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/目录&#39; s使用sudo chown -R :group_name /my-app/uploaded_files/
  • 创建的 group_name 的所有者
  • 使用/my-app/uploaded_files/
  • sudo chown -R user_name: /my-app/uploaded_files/文件夹的所有者更改为用户pm2

上述两种方法都可以正常工作,但使用时应该更优先使用,如果我们希望允许另一个用户访问同一目录,我们可以再添加一个用户小组和其他一切都是一样的。

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

答案 1 :(得分:0)

原来我必须修改我的目标文件夹uploaded_file的权限,感谢@vinitpayal鼓励我来这个工作