私はいつもrootユーザーによって開始されたrubyスクリプトを持っています。スクリプトにはfou()
という特定の機能があります。この関数は 'root'ではなく 'otherguy'というユーザとして実行する必要があります。私はどのようにユーザーをRubyスクリプトの中間に切り替えるか、関数を実行してからrootに戻しますか?ルビスクリプトでOSユーザーをどのように切り替えるのですか?
には子が
OS固有のコードを処理していない一つのプロセス
する必要がある限り、それはすべて/ほとんどのUNIXシステムのために働くだろうと大歓迎です。
編集:私は本当にあなたがuser id
効果的かつgroup id
を変更することができますProcess::Sys.setegid
Process::Sys.seteuid(integer)
でRuby2.0.0
これは子プロセスなしではどのように動作すると思いますか?あなたのケースでは、 "root"というユーザーがすでにこのファイルを実行しています。このファイルの一部を別のユーザーとして実行し、子プロセスになるプロセスをフォークせずに実行する方法はわかりません。正直なところ、どの言語で使用されているかにかかわらず、どのような環境でこれを行うのかはわかりません。 [フォークの例](http://brizzled.clapper.org/blog/2011/01/01/running-a-ruby-block-as-another-user/)あなたの気持ちが変わった場合に備えて – engineersmnky
@engineersmnkyそうですこれはただ不可能であるという結論を受け入れ始めた。私はしばらく検索してきました。 –