如何创建交互式守护程序登录?

Joh*_*ely 2 linux debian login user-management daemon

我在 debian/linux 机器上运行一个服务,该服务在启动时运行,带有一个我可以随时附加的“屏幕”会话。

我想创建一个可以运行此服务的用户名。目前我使用“常规”登录帐户。我想要专用于此服务的用户名的附加安全性(类似于 'nobody' 或 'web' 与 apache 一起使用的方式)。

要求:

  • 无法在本地或远程登录(因此无需管理密码)
  • 允许用户访问屏幕会话并与服务交互的能力。

我想该解决方案将创造性地使用 su/sudo 以及如何创建帐户的详细信息。

Chr*_*ung 5

首先,创建screen会话运行的帐户(例如称为screenimage),以及允许使用它的一组用户(例如screenusers):

adduser --system --group screenimage
addgroup --system screenusers
Run Code Online (Sandbox Code Playgroud)

然后对于每个允许使用它的用户,将它们添加到screenusers组中:

adduser USER screenusers
Run Code Online (Sandbox Code Playgroud)

然后,将批准的用户添加到/etc/sudoers:运行visudo并添加行

%screenusers ALL = (screenimage) /usr/bin/screen
Run Code Online (Sandbox Code Playgroud)

ETA:为了解决这篇文章中的其他答案:--system创建没有外壳或密码的帐户。这sudoers条线意味着用户被限制在运行中screenscreenimage只作为用户。