
あるプログラムを実行したときの、実行ユーザについて教えてください。
基本的な質問で申し訳ございません。
(1)/etc/rc.d/init.d/に起動スクリプトを作成し、chkconfigでサーバ起動時に自動起動されるように設定したサービスの実行ユーザは誰になるのでしょうか?
(2)あらかじめシステムに組み込まれているサービスで、サーバ起動時に自動起動されるサービス(httpdとか)の実行ユーザは誰になるのでしょうか?
また、以下の認識で合ってますでしょうか?
(3)cronから起動されるプログラムの実行ユーザは、crontabに設定されている実行ユーザ
(4)OSにログイン後、ターミナルを立ち上げて、そのターミナルから起動したプログラムの実行ユーザは、OSにログインしたユーザ
よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
> (1)/etc/rc.d/init.d/に起動スクリプトを作成し、chkconfigでサーバ起動時に自動起動されるように設定したサービスの実行ユーザは誰になるのでしょうか?
init.d以下のスクリプトはroot権限で動き出しますが、root権限で動いているプロセスは必要があれば他のユーザ権限に移行する事が可能です。
なので、動き始めるときはrootとして開始しますが、途中で他のユーザに変身して実行される場合もあります。よって『サービスの実行ユーザは誰になる』という事であれば誰にでもなれます。
> (2)あらかじめシステムに組み込まれているサービスで、サーバ起動時に自動起動されるサービス(httpdとか)の実行ユーザは誰になるのでしょうか?
特権ポートで接続を待つhttpdは特権ユーザ権限で動かす必要があります。なのでhttpdは制御プロセスをrootで動かして、rootで動いてる制御プロセスがhttpd.confに書かれているユーザ権限でスレーブサーバを動かしているかと思います。
※ プロセスツリーを確認すればrootで動いている親のhttpdとwwwなどhttpd.confで指定されたユーザで動いている子(スレーブ)プロセスが確認できるかと思います。
※ 一般ユーザ権限で動かす場合には8080など非特権ポートを使って動かしているはず。この場合はユーザが同じですが上記同様制御プロセスがスレーブプロセスを動かしていると思いますので親子関係で一セットのhttpdプロセス群として動いているはずです。
> (3)cronから起動されるプログラムの実行ユーザは、crontabに設定されている実行ユーザ
非特権ユーザ(uid0以外)の場合は正しいです。
特権ユーザの場合は、プロセスが他のユーザに変身する事があります(できます)ので何とも言えません。
> (4)OSにログイン後、ターミナルを立ち上げて、そのターミナルから起動したプログラムの実行ユーザは、OSにログインしたユーザ
非特権ユーザ(uid0以外)の場合は正しいです。
特権ユーザの場合は、プロセスが他のユーザに変身する事があります(できます)ので何とも言えません。
ご回答どうもありがとうございます。
>特権ポートで接続を待つhttpdは特権ユーザ権限で動かす必要があります。なのでhttpdは制御プロセスをrootで動かして、
>rootで動いてる制御プロセスがhttpd.confに書かれているユーザ権限でスレーブサーバを動かしているかと思います。
httpd.confでいえば、「User」「Group」が実際プロセスを動かしているユーザ権限であることが理解できました。
>動き始めるときはrootとして開始しますが、途中で他のユーザに変身して実行される場合もあります。
>特権ユーザの場合は、プロセスが他のユーザに変身する事があります(できます)ので何とも言えません。
他のプロセスでこのように他のユーザに変身するケースというのは、どのようなケースがありますでしょうか?
また、分かり易い関連サイトなどありましたら、ご紹介していただけると助かります。
No.4
- 回答日時:
>他のプロセスでこのように他のユーザに変身するケースというのは、どのようなケースがありますでしょうか?
それは、個々のサービスの設計思想次第じゃないでしょうか。
特に決まりがあるわけじゃないと思います。
ただ、セキュリティーに絡んだサービスほど、変身させる場合が多いのではと思いますが。
別にrootで動くhttpdを開発したっていいわけですから。
ご回答どうもありがとうございます。
セキュリティ次第だということが理解できました。
個々のサービスについてもう一度見直してみたいと思います。
ありがとうございました。
No.1
- 回答日時:
(1)(2)は同じですよね。
起動スクリプト自体は、root。
その後、サービスのプロセスなどを起動する際に、設定ファイルの中にユーザーやグループが設定できるものがありますが、それはその設定されているもので起動。
物によって違うので、個々に調べてみて下さい。
(3)(4)はそのとおりで良いと思います。
(3)は異論もあろうかと思いますが、基本はcrontab -eで設定するのが一般的。
ご回答どうもありがとうございます。
基本的なユーザ権限については理解できました。
個々の設定についてはもう少し調べてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- Ruby MacBookAir起動時にRubyソースコードをコマンドラインで実行するには? MacのOS起動時 1 2022/04/18 01:55
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- ルーター・ネットワーク機器 NUROのルータF660Aについて 2 2022/09/07 11:44
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- UNIX・Linux コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 09:09
- Windows 10 コマンドプロンプトでのユーザーのサインイン時間設定について 1 2022/08/09 20:43
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- Windows 10 windowsセキュリティーでパスワードエラー 1 2022/06/14 19:49
- X(旧Twitter) 私、Twitter乗っ取られたんですよ。それで友達のTwitterを許可なく実験で入れるかユーザ名だ 2 2023/02/21 22:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xinetdとproftpdについて
-
LINUXについて質問です。
-
起動しているapacheのバージョ...
-
Linux系OSでのOS立ち上げ時の自...
-
DNSサーバーの構築「no servers...
-
Linuxのプロセス確認
-
テキストログインでstartxをし...
-
Ubuntuで起動時に自動的にイン...
-
Linuxサーバーは定期リブートを...
-
Linuxでログイン時にプログラム...
-
リセットしたらデスクトップが...
-
デスクトップの"ワークスペース"
-
起動すると、UNSUPPORTED MODE...
-
プロセスの再起動時などの表示...
-
wermgr.exeって何ですか?
-
Linux(redhat系)の実行ユーザ...
-
FMVマイページ、FMVサーチが勝...
-
pc初心者です。 UEFIでの設定で...
-
Google Chromeの文字の表示がぼ...
-
オススメ、ディストリビューション
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DNSサーバーの構築「no servers...
-
Linuxサーバーは定期リブートを...
-
MacOSのLaunchAgentsってなんで...
-
起動時のターミナルの状態を戻...
-
WMIを有効にする方法が分かりま...
-
AIXルーティング情報について
-
batファイルでのプログラム起動順
-
linuxからのメールが文字化けと...
-
wermgr.exeって何ですか?
-
sambaのnmbが起動できない
-
KDEをインストールしてもstartx...
-
ダウンロードできないー><
-
FTPでユーザ名の表示
-
別ターミナルへのprintf出力
-
apacheが起動しない
-
telnetd, sshdが動いているかど...
-
VNCクライアントから管理者権限...
-
httpd(Apache)でhttpsのポート...
-
インデザイン(InDesing)の開き...
-
テキストログインでstartxをし...
おすすめ情報