为 Tomcat RHEL/CentOS 创建组和用户

为 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隐藏,但是

乔恩- 更改文件所有者和组

-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.
# 

用户L5CUID 和 GID 低于 500

# 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.
#

用户G5CUID 和 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
# 

区别用户G5C创建主目录

问题

最好使用: useradd UserG5C -M -s /bin/false因为这个用户/帐户没有系统权限?

答案1

有多少人就有多少意见。我认为创建 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 useraddman usermod

编辑

其实你应该回答一些问题:

  1. 您需要系统用户(UID < 500)吗?
  2. 您是否需要 shell 或者您想禁用 shell 访问 ( /sbin/nologin, /bin/false)?
  3. 您是否需要该用户的主目录(顺便说一句,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

你问了,我们就回答了。

  1. 如果您的用户的 UID < 500 仅意味着它是某些服务的用户,而不是普通用户(可能是具有 shell 访问权限的人类)。它不会给您带来漏洞,因为这些用户没有受到操作系统的特殊对待。而且它不会为您提供扩展功能。只有一件事为什么使用 UID < 500 不好:您将来可以安装一些 RPM 软件包,它将为用户提供相同的 UID。在这种情况下,你会遇到一些问题。就是这样!顺便说一句,从 RPM 安装的 tomcat 为用户 tomcat 提供了 UID=91 和 GID=91 的组(至少在我的 Fedora 中是这样):
$ id tomcat
uid=91(tomcat) gid=91(tomcat) groups=91(tomcat)
  1. 好的,使用/bin/false/sbin/nologin

  2. 您可以/像某些软件包一样指定服务的主目录。例如,如果您从 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 后面有“:”暗示,则更改为登录组。

现在不推荐使用.作为所有者/组分隔符。使用:

答案2

useradd -m -d /home/thenewuser -s /bin/bash -c "the new user" -U thenewuser

-c“消息”:有关用户的额外信息。

-U 新用户:创建与用户同名的组,并将用户添加到该组中。

-N: -N 参数告诉系统不要创建具有用户名的组

-m, --创建主页相同:如果用户的主目录不存在,则创建该目录。

-d, --home HOME_DIR:将使用 HOME_DIR 作为用户登录目录的值来创建新用户。
如果-d不使用默认主目录将是 /home/thenewuser

-m -d /数据/新用户: 这-m参数创建 /data/thenewuser 主目录,由 -d 参数指定。

-M: -M 参数告诉系统不要创建主目录

-s /bin/bash: 这-s用于指定用户的默认 shell,在本例中为 /bin/bash。

-s 或 --shell是一样的。

-s /sbin/nologin: 这/sbin/nologin对于 Fedora 和/usr/sbin/nologin对于 Debian,有两个 shell 会返回一条礼貌的消息,例如“此帐户不可用”,并且不允许您登录系统。该消息可以定制。

-s /bin/假:是一个旧的 shell,用于拒绝用户的登录。当 false 存在时 /bin/false 立即退出。以 /bin/false 或 /bin/true 作为默认 shell 的用户帐户被锁定。

-s /sbin/nologin属于 unix-linux,而 /bin/false 属于 GNU Coreutils 的一部分。这些 shell 必须列在 /etc/shells 文件中才能工作。

具有 /sbin/nologin(或 /usr/sbin/nologin)的用户可以通过 ssh 或 ftp 连接,但具有 /bin/false 的用户被完全锁定在系统之外。

用户添加-D:您还可以使用以下命令查看为要创建的新用户设置的默认参数

# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
#

检查其他替代方案:http://www.golinuxhub.com/2014/04/10-practical-examples-to-use-useradd.html

-r: -r 参数用于创建系统用户

检查用户

手指

例子

# finger mysql
  Login: mysql                      Name: 
  Directory: /home/mysql            Shell: /bin/bash
  Never logged in.
  No mail.
  No Plan.
# 

CentOS 6 没有这个命令,但你可以轻松安装它

百胜安装手指

other ` http://www.howtoing.com/add-users-in-linux/

答案3

useradd -m -c "Tomcat User" -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
tar -xvf apache-tomcat-9.0.53.tar.gz -C /opt/tomcat --strip-components=1
chown -R tomcat: /opt/tomcat
sh -c 'chmod +x /opt/tomcat/bin/*.sh' 

相关内容