特定の作業ディレクトリなしでシステムユーザーのホームディレクトリを設定するための最良の方法は何ですか?
特定のバイナリまたはスクリプトを実行するには、ユーザーを作成する必要があることがよくあります。私のバイナリが/ usr / binにあり、私のユーザーがバイナリを実行するために私のinitスクリプトでのみ使用されていると仮定すると、次のように単純に実行できます。
useradd --no-create-home
それとも/var、/tmp、または他のディレクトリにディレクトリを指定する方が安全ですか?
答え1
同様のものを作成して、すべてのシステムユーザーに使用したり、ホームディレクトリに似たもの/var/empty
を指定したりできます。/dev/null
私は1つのバイナリ(通常サービス)のみを実行しているシステムユーザーに後者を使用します。プログラムが何かを保存しようとすると、プログラム名の場所を/srv/app
指定しapp
てそのディレクトリを作成します。
このようなプログラムでuseradd
ホームディレクトリを指定する必要がある場合は、/var/empty
ディレクトリをroot:root 0755として指定して作成します。そうでない場合は、ファイルでもディレクトリでも無効ですが、明らかに存在するものを指定してください。また、/bin/false
簡単に上書きできますが、aをログインシェルとして指定することをお勧めします。
または、/
PWDポイントがどこにあるかにかかわらず、何かを作成したくない場合は、in/
と同様に正常です/var/empty
。