[解決済み] Linuxサービスを別のユーザーとして実行するためのベストプラクティス
質問
サービスのデフォルトの起動方法は
root
で起動します。私の記憶が正しければ、他の Linux ディストリビューションでも同じで、 init スクリプトを
/etc/init.d
.
代わりに私が選んだ(静的な)ユーザーとしてプロセスを実行させるための最良の方法は何だと思いますか?
私がたどり着いた唯一の方法は、次のようなものを使用することでした。
su my_user -c 'daemon my_cmd &>/dev/null &'
しかし、これではちょっと片付かないような...。
他の非 root ユーザーとしてサービスを自動的に開始する簡単なメカニズムを提供する、ちょっとしたマジックが隠されているのでしょうか?
EDITです。 今回起動する処理は、PythonスクリプトかJavaプログラムであると言うべきでした。私はそれらの周りのネイティブラッパーを書きたくないので、残念ながら、私は setuid() として 黒 を示唆しています。
どのように解決するのですか?
Debianでは
start-stop-daemon
ユーティリティを使用しています。これは pid ファイルを処理したり、ユーザを変更したり、 デーモンをバックグラウンドにしたり、その他いろいろなことを行います。
私は RedHat には詳しくないのですが、このユーティリティは
daemon
ユーティリティはすでに使っているもので、(これは
/etc/init.d/functions
で定義されています) は、あらゆるところで次のものと同等であると言及されています。
start-stop-daemon
と同じであるため、プログラムの uid を変更することができるか、またはその方法がすでに正しいものであるかのどちらかです。
ネットを見渡せば、使える既成のラッパーがいくつかあります。いくつかはすでに RedHat にパッケージされているかもしれません。以下のサイトを見てください。
daemonize
を見てください。
関連
-
Linux ddコマンド詳細説明:データのバックアップ、およびバックアッププロセスでのフォーマット変換のケース
-
Linux Mintシステムでプログラムをアンインストールするには? Linux で不要なアプリケーションをアンインストールするためのヒント
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
[解決済み] LinuxでXcodeを動かせるか?
-
[解決済み] bash sh - command not found [重複].
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] LinuxのDockerコンテナでGUIアプリケーションを動かせるか?
-
[解決済み] Linuxのシェルから、カレントと異なる作業ディレクトリでプログラムを実行するには?
-
[解決済み】LinuxでPythonスクリプトをサービスやデーモンのように実行させる方法
-
[解決済み] LinuxでJavaアプリケーションをサービスとして動作させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
virtualboxが仮想マシンを開けない場合は?linuxがvirtualboxにアクセスできない時の解決策
-
Kali Linuxのマウスライトテーマを変更する方法は?マウスカーソルのテーマを変更するためのヒント
-
Linux Mintシステムでプログラムをアンインストールするには? Linux で不要なアプリケーションをアンインストールするためのヒント
-
deepin depth systemはどのような内容でアップデートされましたか?deepinの最新版アップデート内容まとめ
-
linux(ubuntu 18.04)でのアイデア運用データベース障害問題について
-
deepin20のデフォルトブラウザを設定するには?deepinにデフォルトブラウザを追加するためのヒント
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
[解決済み] CPAN.pmが@INCに見つからない(@INCには含まれています。/usr/local/lib/perl5 /usr/local/share/perl5。
-
[解決済み] Linuxでファイルをシンボリックリンクするには?[クローズド]
-
[解決済み] どのバージョンのPostgreSQLを使用していますか?