質問: linuxサービスを別のユーザーとして実行するためのベストプラクティス サービスはデフォルトで、rhelボックスでの起動時にrootとして開始します。正しく思い出せば、/etc/init.dのinitスクリプトを使用する他のlinuxディストリビューションでも同じことが言えます。代わりに、プロセスを選択した(静的な)ユーザーとして実行する最良の方法は何だと思いますか?私が着いた唯一の方法は、次のようなものを使用することでした: su my_user -c 'daemon my_cmd &>/dev/null &' しかし、これは少しだらしないようです...他の非rootユーザーとして自動的にサービスを開始する簡単なメカニズムを提供する魔法が少し隠れていますか?edit:このインスタンスで開始するプロセスは、pythonスクリプトまたはjavaプログラム。私はむしろそれらの周りにネイティブラッパーを書きたくないので、残念ながら black が示唆するように setuid() を呼び出すことができません。
回答: initスクリプトで次のことを試してみてください。setuid $user application_name それは私のために働いた。