在安装新软件期间添​​加新用户和组的最佳方法是什么?

在安装新软件期间添​​加新用户和组的最佳方法是什么?

我需要创建一个设置过程,在系统上添加一个新用户和组,用于运行应用程序;就像安装 mariaDb 或 openSSh 等程序时一样。最好的方法是什么?现在我使用带有 python 子进程模块的 bash 脚本;但这给了我很多疑问。后来……我如何以另一个用户身份运行程序?谢谢。

答案1

要在 Debian 系统上创建新用户或组,您可以使用命令adduseraddgroup它们是useradd和的包装器groupadd):

$ man 8 adduser

包安装程序使用相同的命令。

如果你想创建一个系统用户或组,与“普通”用户(具有登录 shell)相比,您可以使用调用

$ adduser --system [...]

如同

$ adduser --system --home /var/local/lib/mysrv --group --disabled-login mysrv
Adding system user `mysrv' (UID 137) ...
Adding new group `mysrv' (GID 173) ...
Adding new user `mysrv' (UID 137) with group `mysrv' ...
Creating home directory `/var/local/lib/mysrv' ...

这将创建系统用户mysrv和组mysrv,将其添加到该组,并为其创建一个主目录/var/local/lib/mysrv(它可以在其中放置其数据和日志文件等)。

要再次删除它,请使用deluser --remove-home mysrv
有关更多选项,请阅读手册页。


如何跑步以新用户身份运行程序将取决于您的偏好和代码。基本上,您需要先成为 root,然后切换到用户(因为系统服务不会“登录”)。

例如,可以通过使用cron和安装系统范围的 cronjob(您可以在其中指定以哪个用户身份运行它)来实现。

另一种方法(可能是最好的方法)是使用主管,例如守护进程工具或者主管

最后一个选项是成为系统守护进程,并完成所有相关操作。如果您的程序是作为守护进程编写的,则 init 系统将处理它(systemd、sysvinit 等),但您需要为其编写 init 脚本。

运行安全的系统服务并非易事,但有一些工具可以帮助您实现这一点,例如daemonpython-daemon(均为 Debian 软件包)。

daemon(1) 将其他进程转换为守护进程。要正确设置守护进程,需要执行许多任务。这可能很繁琐。守护进程为其他进程执行这些任务。

阅读手册页。

相关内容