為 Tomcat RHEL/CentOS 創建組和使用者
我想為我的 Tomcat 安裝創建一個使用者,但我正在查看多個選項:
# groupadd tomcat # # useradd -g tomcat -d /usr/local/tomcat tomcat # useradd -g tomcat -c "Tomcat User" -d /usr/local/tomcat tomcat
其他選擇:
https://panovski.me/install-tomcat-8-on-centos-7/
# useradd -r -s /sbin/nologin tomcat # chown -R tomcat: /usr/local/tomcat
在其他頁面(隱藏和遞歸)
# useradd -r tomcat --shell /bin/false # chown -hR tomcat: /usr/local/tomcat
其他選擇:?
# useradd -g tomcat -s /bin/bash -d /usr/local/tomcat tomcat # chown -Rf tomcat.tomcat /usr/local/tomcat
我不知道錯誤或後果是什麼,我想知道什麼是最好的選擇
我認為最好使用 -h hidden,但是
chown - 更改文件所有者和組
-r, --system Create a system account. System users will be created with no aging information in /etc/shadow, and their numeric identifiers are chosen 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. -s, --shell SHELL The name of the user's login shell. The default is to leave this field blank, which causes the system to select the default login shell specified by the SHELL variable in /etc/default/useradd, or an empty string by default.
在 CentOS 中是否需要使用 -s 或 -r 選項?
編輯 2
# useradd -r UserL5C --shell /bin/false # more /etc/passwd | grep UserL5C UserL5C:x:494:491::/home/UserL5C:/bin/false # more /etc/group | grep UserL5C UserL5C:x:491: # finger UserL5C Login: UserL5C Name: Directory: /home/UserL5C Shell: /bin/false Never logged in. No mail. No Plan. #
UID 和 GID 低於 500 的UserL5C
# useradd UserG5C --shell /bin/false # more /etc/passwd | grep UserG5C UserG5C:x:503:504::/home/UserG5C:/bin/false # more /etc/group | grep UserG5C UserG5C:x:504: # finger UserG5C Login: UserG5C Name: Directory: /home/UserG5C Shell: /bin/false Never logged in. No mail. No Plan. #
UserG5C UID 和 GID 大於 500
# ls -al /home/ total 32 drwxr-xr-x. 5 root root 4096 Jun 25 06:05 . dr-xr-xr-x. 25 root root 4096 Jun 25 05:19 .. drwx------. 33 IntUser IntUser 4096 Jun 25 05:46 IntUser drwx------. 2 root root 16384 Jun 13 09:56 lost+found drwx------. 4 UserG5C UserG5C 4096 Jun 25 06:01 UserG5C #
UserG5C創建homeDirectory的區別
問題
最好使用: useradd UserG5C -M -s /bin/false因為這個使用者/帳戶沒有系統權限?
有多少人就有多少意見。我認為創建tomcat使用者的最佳方法如下:
# useradd -r -s /sbin/nologin tomcat # chown -R tomcat: /usr/local/tomcat
這意味著,您將創建系統帳戶。資訊來自
man useradd
:System users will be created with no aging information in /etc/shadow, and their numeric identifiers are chosen 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).
還
useradd -r ...
創建與使用者同名的組,您不需要自己創建。順便說一句,如果您決定更改使用者配置中的某些內容(例如:指定主目錄或更改 shell),您將始終可以使用
usermod
命令來完成。閱讀
man useradd
和man usermod
。編輯
你真的應該回答一些問題:
- 您需要係統使用者(UID < 500)嗎?
- 您需要 shell 還是要禁用 shell 訪問 (
/sbin/nologin, /bin/false
)?- 您是否需要該使用者的主目錄(順便說一句,tomcat 可能想要擁有它)?
好的,你不想 UID < 500 並且想要主目錄(它現在不存在),讓我們執行以下命令:
# useradd -U -d /usr/local/tomcat -m -s /bin/false tomcat
選項
-U
將創建具有相同名稱的組。如果要添加使用者描述,請使用-c "Tomcat user"
.如果你已經有了 tomcat 目錄:
# useradd -U -d /usr/local/tomcat -M -s /bin/false tomcat
之後,您應該更改 tomcat 目錄的所有者(以允許 tomcat 使用者使用它):
# chown -R tomcat: /usr/local/tomcat
編輯 2
你問,我們在回答。
- 如果您的使用者的 UID < 500,則僅表示它是某些服務的使用者,而不是普通使用者(可能是具有 shell 訪問權限的人)。它不會給你帶來漏洞,因為這些使用者沒有被作業系統特別對待。此外,它不會為您提供擴展功能。只有一件事為什麼使用 UID < 500 不好:您可以在將來安裝一些 RPM 包,它會為使用者提供相同的 UID。在這種情況下,您會遇到一些問題。就是這樣!順便說一句,從 RPM 安裝的 tomcat 為使用者提供 UID=91 的 tomcat 和 GID=91 的組(至少在我的 Fedora 中):
$ id tomcat uid=91(tomcat) gid=91(tomcat) groups=91(tomcat)
- 好的,使用
/bin/false
or/sbin/nologin
。- 您可以
/
像某些軟體包一樣為您的服務指定主目錄。例如,如果您從 RPM 安裝了 tcpdump,則在 中具有以下字元串/etc/passwd
:tcpdump:x:72:72::/:/sbin/nologin
在這種情況下,使用
useradd
帶有鍵-d /
和的命令-M
。另一方面,從 RPM 安裝的 tomcat 具有正確的主目錄:
tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/bin/nologin
現在關於
chown
.這些命令做同樣的工作:
chown tomcat:tomcat /usr/local/tomcat chown tomcat: /usr/local/tomcat
報價來自
man chown
:如果缺少組,則組不會更改,但如果在符號 OWNER 之後由“:”暗示,則更改為登錄組。
現在不推薦使用
.
作為 OWNER/GROUP 分隔符。使用:
.