如何在 Linux 中建立受限使用者帳戶

如何在 Linux 中建立受限使用者帳戶

我想為我的 debian 伺服器上安裝的每個關鍵程式建立一個使用者帳戶。例如,對於以下程序:

Tomcat Nginx 主管 PostgreSQL

這似乎是根據我在網路上閱讀的推薦。但是,我想盡可能地限制這些用戶帳戶,以便他們沒有 shell 登錄,無法存取其他程序,並且盡可能受到限制但仍然有效。

有人介意告訴我如何實現這個目標嗎?到目前為止我的閱讀顯示:

echo "/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=/首頁
  4 不活動=-1
  5 過期=
  6 外殼=/bin/bash
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=是

對此

  1 # useradd預設文件
  2組=100
  3 HOME=/首頁
  4 不活動=-1
  5 過期=
  6 SHELL=/bin/nologin
  7 SKEL=/etc/skel
  8 CREATE_MAIL_SPOOL=是

更改此設定後,如果您建立使用者帳戶,則所有這些帳戶都無法登入系統

正是因為這個

使用者:x:1017:1017 :: / home /使用者:/ bin /諾登入-----> /etc/passwd 檔案條目

看這裡

[max@localhost ~]$ su - 用戶
密碼:
su: /bin/nologin: 沒有這樣的檔案或目錄
[最大@localhost ~]$

您可以透過/etc/passwd直接編輯文件來獲得它,無需編輯/etc/default/useradd

如果使用者較少則歸檔

只需更改最後提交的內容

使用者:x:1017:1017 :: / home /使用者:/ bin / bash

對此

使用者:x:1017:1017 :: / home /使用者:/ bin / nologin

相關內容