![我正在为自定义 Java 服务器创建用户,设置用户时我需要考虑什么?](https://linux22.com/image/651121/%E6%88%91%E6%AD%A3%E5%9C%A8%E4%B8%BA%E8%87%AA%E5%AE%9A%E4%B9%89%20Java%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7%EF%BC%8C%E8%AE%BE%E7%BD%AE%E7%94%A8%E6%88%B7%E6%97%B6%E6%88%91%E9%9C%80%E8%A6%81%E8%80%83%E8%99%91%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我对这个过程还很陌生,所以请耐心等待。
该服务器是我自己的套接字服务器,它解析来自已连接客户端的数据并将其保存到数据库中。它不会以网页或其他任何形式提供数据,最多会从数据库中检索数据并将其发送回已连接的客户端。我想将服务器设置为以服务形式运行,这样它将在服务器启动时启动,我可以更轻松地从命令行管理它。我的硬件运行的是 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,它将管理所需的所有设置,包括创建用户、创建可能需要创建的目录、将服务脚本放在正确的文件夹中以及在启动时启用它。如果这看起来工作量太大,那么您至少需要编写/复制/破解一个服务脚本并将其放在文件夹中。
有用的资源:
- https://fedoraproject.org/wiki/How_to_create_an_RPM_package
- https://stackoverflow.com/questions/22336075/linux-process-into-a-service
第二个链接提到查看init.d
文件夹以获取有关服务脚本的更多信息:这是一个好主意。与软件捆绑在一起的 JBoss 或 Tomcat 服务脚本应该与您要实现的类似。