在 unix(Ubuntu)中,如何以特定用户身份运行服务或应用程序?

在 unix(Ubuntu)中,如何以特定用户身份运行服务或应用程序?

有人告诉我我应该以用户身份运行我的 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

阿帕奇文档 http://httpd.apache.org/docs/current/suexec.html

相关内容