我们如何创建一个没有登录 shell 的用户帐户来运行 Tomcat 服务器。
没有登录 shell 的用户帐户的用途是什么?
非登录 shell 用户如何使用非登录用户 ID 执行 Tomcat 服务器的安装?
答案1
要创建没有 shell 的系统用户帐户:
$ sudo useradd -r -m -d ${TOMCAT_HOME} -s /sbin/nologin tomcat
通过将 shell 设置为/sbin/nologin帐户更难被意外泄露(例如,为用户 tomcat 设置密码,然后有人尝试登录)。它还将阻止使用 创建 shell sudo su tomcat -
。
但是,仍然可以使用 sudo 以该用户身份运行命令:
$ sudo -u tomcat COMMAND
如果使用包管理器,请确保它尚未为您创建 tomcat 用户。如果从存档中提取,请确保存档位于 tomcat 用户可以访问的位置(例如,/tmp)。
答案2
通过创建一个具有 shell 的普通用户帐户,该 shell 不存在或不允许用户运行任何命令。例如 shell 可能是
/bin/nologin
或/bin/true
。这个想法是将 Tomcat 文件的所有权赋予某个用户,而不是超级用户(即“root”),这样当您运行 Tomcat 时,您不必以“root”身份运行该进程。只是为了安全。
这很可能是不可能的。我会创建一个普通用户帐户,进行安装,然后将该帐户的登录 shell 更改为其他工作 shell(参见 1)。