我正在为自定义 Java 服务器创建用户,设置用户时我需要考虑什么?

我正在为自定义 Java 服务器创建用户,设置用户时我需要考虑什么?

我对这个过程还很陌生,所以请耐心等待。

该服务器是我自己的套接字服务器,它解析来自已连接客户端的数据并将其保存到数据库中。它不会以网页或其他任何形式提供数据,最多会从数据库中检索数据并将其发送回已连接的客户端。我想将服务器设置为以服务形式运行,这样它将在服务器启动时启动,我可以更轻松地从命令行管理它。我的硬件运行的是 CentOS。

我真的不知道从哪里开始。我在其他 Linux 发行版上看到过一个tomcat用户www-data,我相信他也是 tomcat 用户。我想这些用户也有自己的文件夹来存储设置和数据等。

你可以想象,在互联网上搜索这类信息是相当棘手的。

我一直在阅读有关此处的密码文件的信息,并查看密码文件中的 tomcat 用户,但对我来说这没什么意义。如果您能提供任何建议就太好了!

答案1

创建用户:

最简单的情况是使用useradd带有某些标志的命令。出于安全原因,您可能需要确保创建一个“系统”用户,以便它不会出现在登录窗口中,并且如果可能的话,为其提供 shell /sbin/nologin。此外,除非绝对需要,否则请尽量避免为其提供 sudo 访问权限 - 再次强调,出于安全考虑。

因此,您需要使用以下命令创建用户:

sudo useradd -d /var/lib/socketuser -m -r -s /sbin/nologin socketuser

这将告诉系统用/var/lib/socketuser作主目录,创建该目录,并应用我提到的两个安全标志。

更普遍:

至于让套接字服务器在启动时作为服务运行,这有点复杂。您可能希望将软件打包为 CentOS 的 RPM,它将管理所需的所有设置,包括创建用户、创建可能需要创建的目录、将服务脚本放在正确的文件夹中以及在启动时启用它。如果这看起来工作量太大,那么您至少需要编写/复制/破解一个服务脚本并将其放在文件夹中。

有用的资源:

第二个链接提到查看init.d文件夹以获取有关服务脚本的更多信息:这是一个好主意。与软件捆绑在一起的 JBoss 或 Tomcat 服务脚本应该与您要实现的类似。

相关内容