root
として実行され、chroot()
データ ファイル ディレクトリに移動し、root
権限を削除する単純な Linux ネットワーク デーモンを開発しています。私は「構成よりも規約」のアプローチが好きで、使用するユーザーとグループを設定するための構成がソフトウェアにあるとしても、賢明なデフォルトを使用したいと考えています。
どのデフォルトを使用する必要がありますか? ユーザーnobody
とグループnogroup
? ユーザーdaemon
とグループdaemon
? 別?
root
として実行され、chroot()
データ ファイル ディレクトリに移動し、root
権限を削除する単純な Linux ネットワーク デーモンを開発しています。私は「構成よりも規約」のアプローチが好きで、使用するユーザーとグループを設定するための構成がソフトウェアにあるとしても、賢明なデフォルトを使用したいと考えています。
どのデフォルトを使用する必要がありますか? ユーザーnobody
とグループnogroup
? ユーザーdaemon
とグループdaemon
? 別?
サービスにちなんで名前が付けられた新しいユーザーを作成することをお勧めします。
このようにして、アクセス許可を厳密に制御し、サービスによって管理されるファイルを厳密に制御することもできます。
このようなもの(あなたのデーモンがantoniodと呼ばれていると言う):
useradd -s /sbin/nologin antoniod
次に、ファイルを適切にchown / chmodできます(たとえば、バイナリが/ opt / antoniodにあり、データが/ var / antoniod-dataにあるとします)。
chown -R antoniod:antoniod /opt/antoniod/
chown -R antoniod:antoniod /var/antoniod-data/
chmod -R 0550 /opt/antoniod/
chmod -R 0770 /var/antoniod-data/
起動スクリプト自体に関するアドバイスが必要な場合は、daemon
関数(RedHat)やstop-start-daemon
(Debian)などのディストリビューション固有のサポートを調べてください。
HTH