我想知道一个被锁定的帐户通常如何www-data
运行服务,例如apache2
,如果它有/usr/sbin/nologin
shell?
有没有办法在根会话中执行如下操作:
root# su serviceaccount -c "path-to-application parameters"
使用实际运行该服务的同一用户“手动”执行服务背后的程序,而无需
This account is currently not available.
由于nologin
?
答案1
考虑了一段时间。得出了某种结论
此服务帐户不用于交互式会话,因此它们不需要 shell 解释器,出于安全原因,它们确实也不应该拥有它。
Systemd 启动每个服务的进程,并以某种方式为每个进程分配相应的用户。
关于第二个问题,我发现以交互方式测试服务运行的程序的最佳方式就是为用户分配一个 shell 解释器(通常为 /bin/bash)并运行以下命令:
# su -u serviceaccount -c "executable parameters"
当然,它不会具有完全相同的运行环境,但您可以让它运行并希望发现令您烦恼的错误。
完成后,不要忘记从帐户中删除 shell 解释器