在 Debian 服务器上创建受限用户

在 Debian 服务器上创建受限用户

我想为我的 Debian 服务器上安装的每个关键程序创建一个用户帐户。例如,对于以下程序:

Tomcat Nginx 主管 PostgreSQL

根据我在网上读到的内容,这似乎是推荐的。但是,我想尽可能地限制这些用户帐户,以便他们没有 shell 登录,无法访问其他程序,并且尽可能地受到限制但仍能正常运行。

有人能告诉我如何实现这一点吗?到目前为止,我的阅读表明:

echo "/usr/sbin/nologin" >> /etc/shells
useradd -s /usr/sbin/nologin tomcat

但我认为可能有更完整的方法来实现它。

编辑:我正在使用 debian squeeze

答案1

这是正确的方法,但您需要指出它是系统用户,这样/etc/shadow就不会有任何老化信息。摘自useradd手册页:

-r, --system

      Create a system account.

      System users will be created with no aging information in /etc/shadow, and their numeric identifiers are choosen in the
      SYS_UID_MIN-SYS_UID_MAX range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the creation of
      groups).

      Note that useradd will not create a home directory for such an user, regardless of the default setting in /etc/login.defs
      (CREATE_HOME). You have to specify the -m options if you want a home directory for a system account to be created.

因此,您需要类似以下内容的内容:

useradd -s /usr/sbin/nologin -r -M tomcat

如果需要,您还可以创建一个主目录,也许是属于服务的东西,例如:

useradd -s /usr/sbin/nologin -r -M -d /etc/nginx nginx

相关内容