我想为我的 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