如何在 Linux 中创建受限用户帐户

如何在 Linux 中创建受限用户帐户

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

Tomcat Nginx 主管 PostgreSQL

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

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

回显“ / usr / sbin / nologin”>> / etc / shells useradd -s / usr / sbin / nologin tomcat

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

编辑:我正在使用 debian squeeze

答案1

你运行的是哪个发行版?好的发行版已经为这些软件包设置了安装脚本,以创建特定于守护进程的用户,这些守护进程可以从以单独用户身份运行中受益。一些软件包共享一个用户,它们需要协作读取/写入各种文件。但在所有情况下,它们往往将nologin其作为登录 shell,这是合适的。

答案2

我不知道这是否会对你有帮助,只是看看这个。

我想尽可能地限制这些用户帐户,这样他们就没有 shell 登录

为此,在创建用户帐户之前,只需编辑/etc/default/useradd文件

  1 # useradd 默认文件
  2 组=100
  3 HOME=/home
  4 不活跃=-1
  5 到期=
  6 SHELL=/bin/bash
  7 SKEL=/etc/skel
  8 创建邮件SPOOL=是

对此

  1 # useradd 默认文件
  2 组=100
  3 HOME=/home
  4 不活跃=-1
  5 到期=
  6 SHELL=/bin/nologin
  7 SKEL=/etc/skel
  8 创建邮件SPOOL=是

更改此设置后,如果您创建用户帐户,则所有这些帐户都无法登录系统

这是因为

用户:x:1017:1017::/home/用户:/bin/暂无登录-----> /etc/passwd 文件条目

看这里

[max@localhost ~]$ su - 用户
密码:
su: /bin/nologin:没有此文件或目录
[max@localhost ~]$

你可以通过/etc/passwd直接编辑文件来获得它,无需编辑/etc/default/useradd

如果用户较少

只需更改最后提交的文件

用户:x:1017:1017::/home/用户:/bin/bash

对此

用户:x:1017:1017::/home/用户:/bin/nologin

相关内容