Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Process::UIDモジュール

module Process::UID

クラスの継承リスト: Process::UID

要約

カレントプロセスのユーザ ID を操作するためのモジュールです。

移植性が考慮されており、プラットフォーム間の違いを吸収するように実装されています。 プラットフォームのシステムコールを直接使いたい場合には Process::Sys が提供されています。Process::Sys と Process::UID を同時に使うことは推奨されません。

実ユーザ ID を変更するメソッドは提供されていません。 これは Process::UID.#eid=Process::UID.#re_exchange を以下のように 組み合わせることによって実現できます。

                           # (r,e,s) == (u1,u2,??)
Process::UID.re_exchange   # (u1,u2,??) ==> (u2,u1,??)
Process::UID.eid = id      # (u2,u1,??) ==> (u2,id,??)
Process::UID.re_exchange   # (u2,id,??) ==> (id,u2,??)

モジュール関数

定義 説明
change_privilege(id) -> Integer

実ユーザ ID・実効ユーザ ID・保存ユーザ ID のすべてを指定された id に変更します。 成功したら id を返します。主に root 権限を完全に放棄するために使います。

eid -> Integer

現在の実効ユーザ ID を返します。

grant_privilege(id) -> Integer
eid=(id)

現在のプロセスの実効ユーザ ID を id に変更します。成功したら id を返します。

from_name(name) -> Integer

引数で指定した名前の実ユーザ ID を返します。

re_exchange -> Integer

実ユーザ ID と実効ユーザ ID とを入れ換えます。 保存ユーザ ID は新しい実効ユーザ ID と同じになります。 新しい実効ユーザ ID を返します。

re_exchangeable? -> bool

Process::UID.#re_exchange が実装されているならば true を返します。そうでない場合に false を返します。

rid -> Integer

現在の実ユーザ ID を返します。

sid_available? -> bool

保存ユーザ ID を持つ環境かどうかを真偽値で返します。 保存ユーザ ID を持つなら true を返します。

switch -> Integer
switch { .... } -> object

実効ユーザ ID を一時的に変更するために使います。