我正在使用 Unicorn 和 Nginx 运行 Rails 3 应用程序。目前,Unicorns 以 root 身份运行,并且由于 unicorn.rb 中的这一行:
user "www-data"
但我想知道我是否应该将所有 Unicorn 进程作为 www-data 运行。这样做会有什么问题吗?我正在使用文件套接字,因此打开端口(<1024)不是我遇到的问题。还有什么我应该注意的吗?
我正在使用 Unicorn 和 Nginx 运行 Rails 3 应用程序。目前,Unicorns 以 root 身份运行,并且由于 unicorn.rb 中的这一行:
user "www-data"
但我想知道我是否应该将所有 Unicorn 进程作为 www-data 运行。这样做会有什么问题吗?我正在使用文件套接字,因此打开端口(<1024)不是我遇到的问题。还有什么我应该注意的吗?
您不应该以 root 身份运行您的应用程序。这给了应用程序 root 权限,这反过来意味着如果你犯了错误并暴露了文件系统,攻击者可以毫不费力地获得 root 权限。
我避免以 www-data 或其他共享用户身份运行。相反,我为特定的应用程序创建了一个用户,并赋予他们自己独特的权限。就我而言,我在一台服务器上运行多个应用程序,这样可以在一个应用程序遭到破坏时增加一层保护。
以下是一些可能出错的好读物:https ://jhalderm.com/pub/papers/dcvoting-fc12.pdf