Интересно как заблокированная учетная запись, обычно www-data
, может выполнить сервис, например apache2
, если это имеет /usr/sbin/nologin
как оболочка?
Есть ли способ сделать на корневой сессии, чем-то вроде этого:
root# su serviceaccount -c "path-to-application parameters"
"вручную" выполнять программу позади сервиса с тем же пользователем, который на самом деле выполняет его без получения
This account is currently not available.
из-за nologin
?
Взгляды об этом некоторое время. Добрался до некоторого заключения
Это сервисные учетные записи не предназначаются для интерактивных сессий, таким образом, им не нужен интерпретатор оболочки, у них не должно быть его действительно из соображений безопасности.
Systemd запускает процессы каждого сервиса и так или иначе присваивает corresponing пользователя каждому процессу.
Относительно второго вопроса, лучший способ, которым я нашел для тестирования в интерактивном режиме прогона программы сервисом, просто, assiging интерпретатор оболочки (/bin/bash обычно) пользователю и выполнению команда:
# su -u serviceaccount -c "executable parameters"
От курса это не будет иметь точно того же рабочего ENV, но Вы могли получить его runnig и надо надеяться найти ошибку раздражающей Вы.
Не забывайте удалять интерпретатор оболочки из учетной записи, после того как Вы сделаны