デーモン(ウェブサーバー、データベース)を実行するために使用されるサービス/システムアカウントにはホームが必要ですか?

デーモン(ウェブサーバー、データベース)を実行するために使用されるサービス/システムアカウントにはホームが必要ですか?

次のコマンドを使用して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

デーモン(ウェブサーバー、データベース)を実行するために使用されるサービス/システムアカウントにはホームが必要ですか?

一般的にアカウントにホームディレクトリは必要ありませんが、さまざまな特定のデーモン5月$HOME が存在するディレクトリを指すように要求するか、$HOME が存在することを必要とする他のツールを実行する場合があります。

(たとえば、デーモンを実行してgpgデータを暗号化する必要がある場合、デーモン自体にはホーム ディレクトリがない場合でも、gpg は ~/.gnupg を保存するためのホーム ディレクトリを必要とします。)

このアカウントのホーム ディレクトリを指定する必要があるのはなぜですか?

だってあなたは尋ねる su作業ディレクトリを指定されたユーザーのホームディレクトリに変更するなど、「実際のログイン」手順を模倣します。これは、-または-lオプションの効果の一部として文書化されています。

suこれを実行しない場合は、-または-lオプションを指定しないでください。

関連情報