有人告诉我我应该以用户身份运行我的 Rails 应用程序www-data
,我该怎么做?我如何以特定用户身份运行 Nginx 和其他服务?最佳做法是什么?
答案1
许多程序,特别是那些打算作为守护进程运行的程序,将有一个命令行标志,指示以哪个用户身份运行。这些对于预期使用“特权”端口(小于 1024)的应用程序尤其重要,因为只有 root 才能在那里打开侦听套接字。大多数此类应用程序将以 root 身份启动,读取配置,打开套接字,然后 setuid() 为受限用户。
其他程序(主要是那些不需要低编号端口的程序)可以通过启动脚本中的“su”调用来运行。
答案2
sudo 命令也可以执行此操作;请查看其手册页。
答案3
也许,suexec(切换用户执行)就是您正在寻找的。
ubuntu 文档 http://manpages.ubuntu.com/manpages/lucid/man8/suexec.8.html