Учетная запись службы/системы, используемая для запуска демона (веб-серверов, баз данных), должна иметь домашний адрес

Учетная запись службы/системы, используемая для запуска демона (веб-серверов, баз данных), должна иметь домашний адрес

Я создал системную учетную запись в Fedora, используя следующие команды:

useradd -r -s /bin/false sysacct

Затем создал каталог и дал разрешения sysacct

mkdir /var/sysacct
chown sysacct:sysacct /var/sysacct

Теперь, когда я пытаюсь выполнить команду как sysacct

su - sysacct -c 'mkdir /var/sysacct/test'
I get error

невозможно изменить каталог на /home/sysacct: нет такого файла или каталога


Why do I need to specify a home directory for this account?

решение1

Учетная запись службы/системы, используемая для запуска демона (веб-серверов, баз данных), должна иметь домашний адрес

Вообще говоря, у учетной записи не обязательно должен быть домашний каталог, но могут быть различные специальные демоныможеттребуют, чтобы их $HOME указывал на существующий каталог, или могут запускать другие инструменты, требующие существования $HOME.

(Например, если демону необходимо запуститься gpgдля шифрования данных, gpg потребуется домашний каталог для хранения ~/.gnupg, даже если сам демон этого не требует.)

Зачем мне нужно указывать домашний каталог для этой учетной записи?

Потому что тыспрашивать suдля имитации процедуры "реального входа", которая включает смену рабочего каталога на домашний каталог указанного пользователя. Это задокументировано как часть эффекта опции -или -l.

Если вы не хотите suэтого делать, то не указывайте опцию -или -l.

Связанный контент