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