pseudo - クラウド上のオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド擬似です。

プログラム:

NAME


pseudo - 仮想ルート環境でコマンドを実行します。

SYNOPSIS


ニックネーム [-dflv] [ -x フラグ ] [ -P 接頭辞 ] [ -rR ルート ] [ -t タイムアウト ] [ command]

ニックネーム -h

ニックネーム [-dflv] [ -x フラグ ] [ -P 接頭辞 ] [-紀元前] -i path

ニックネーム [-dflv] [ -x フラグ ] [ -P 接頭辞 ] [-紀元前] -m from -M 〜へ

ニックネーム [-dflv] [ -x フラグ ] [ -P 接頭辞 ] -S

ニックネーム [-dflv] [ -x フラグ ] [ -P 接頭辞 ] -V

DESCRIPTION


XNUMXμmの波長を持つ ニックネーム ユーティリティは、仮想ルート環境を提供します。これ以降、
ニックネーム 環境、ユーザーによるファイル システム イメージとパッケージの作成を許可します。
root権限なしで。 擬似環境は特殊なコマンドをプッシュすることで実装されます。
図書館 (libpseudo.so)を LD_PRELOAD 環境変数。 このライブラリはインターセプトします
多数の一般的なファイルシステム操作といくつかのユーザー ID 関連操作、および
root ユーザーによって操作が実行されたかのような値を返します。 これ
次に、仮想化されたファイルの所有権のリストを保持するデーモン プログラムによって管理されます。
および権限。 このデーモンプログラム自体は ニックネーム.

XNUMXμmの波長を持つ ニックネーム プログラム自体をプログラム ランチャーとして使用することもできます。 ランチャーに慣れているのは、
作業環境を自動的に構成し、その環境内でプロセスを実行します。
環境。 あるいは、特定の環境を設定することでこれを回避することもできます
変数 ( ENVIRONMENT 以下のセクション)。 の ニックネーム クライアント ライブラリ (libpseudo.so)
その後、サーバーを自動的に起動できます。

XNUMXμmの波長を持つ ニックネーム コマンドは、いくつかの可能なモードのいずれかで呼び出すことができます。

-B XNUMXμmの波長を持つ -B オプションの原因 ニックネーム の場合と同様に、データベースをスキャンします。 -C オプションですが、
不一致を報告する代わりに、 ニックネーム それらを修復しようとします。 具体的には、
デバイスと i ノード番号の不一致が修正され、シンボリックリンクまたはディレクトリが修正されます。
不一致がある場合、データベース エントリが削除されます。

-C XNUMXμmの波長を持つ -C オプションの原因 ニックネーム データベースをスキャンして、
ファイルシステムを修復し、可能性のあるエラーを報告します。 サーバーが次の場合、これは信頼できない可能性があります。
活発に動いています。

-h XNUMXμmの波長を持つ -h オプションの原因 ニックネーム 使用方法のメッセージを出力して終了します。

-i XNUMXμmの波長を持つ -i オプションの原因 ニックネーム デバイス番号の不一致の修正を試みるために、
i ノードのチェック; もし path データベースに記録されているものと同じ i ノード番号を持ち、
ただし、デバイス番号は異なります。デバイス番号のすべてのインスタンスは、
データベースは、ライブ ファイルシステムのデバイス番号に更新されます。 path。 この
NFS を再マウントするときに発生する可能性のある不一致を処理することを目的としています。
ファイルシステム。 の -i オプションは、 -C オプション。 を指定することもできます -B
データベースの再構築を要求するオプション。

-m XNUMXμmの波長を持つ -m および -M オプションの原因 ニックネーム ファイル名を変更するには、文字列を置き換えます from  
文字列 に。 XNUMXμmの波長を持つ -m オプションのペアは、 -C オプション。 指定することもできます
  -B データベースの再構築を要求するオプション。

-V XNUMXμmの波長を持つ -V オプションの原因 ニックネーム 構成情報を出力して終了します
すぐに。

-S XNUMXμmの波長を持つ -S オプションの原因 ニックネーム 既存のサーバーの検索を試み、見つかった場合は
XNUMX つは、すべてのクライアントが接続解除されたらすぐにサーバーをシャットダウンするようにサーバーに指示します。
それ。 クライアントがサーバーに接続している間はサーバーはシャットダウンしないことに注意してください。 で
この場合、 ニックネーム 残りのクライアント PID のリストを出力します。

-d XNUMXμmの波長を持つ -d オプションを指定すると、疑似はすぐに切り離され、バックグラウンドで実行されます。
デーモン。 これはデバッグ以外にはほとんど役に立ちません。

最後に、これらのオプションを何も指定せずに呼び出すと、 ニックネーム エミュレートされたルートを設定します
環境を設定してから呼び出します command 提供されている場合はシェル、そうでない場合はシェル ( SHELL
環境変数が設定されている場合、または /bin/sh さもないと)。

次のオプションは、の動作を変更します ニックネーム:

-d (デーモン化)
デーモンとして実行します。 ニックネーム 呼び出し元の環境から切り離され、
デーモン。 これが成功したように見える場合、コマンドは正常に戻ります。
それ以外の場合は、エラー メッセージが生成され、失敗ステータスが返されます。

-f (前景)
フォアグラウンドで実行します。 ニックネーム サーバーとして実行され、他のサーバーを起動しようとしません。
コマンド。 このモードはデバッグに役立ちます。

-l (ログ)
ロギングを有効にします。 の ニックネーム デーモンはすべてのファイルシステムのトランザクションをログに記録します。
ログデータベース。

-r ルート

-R ルート をセットする PSEUDO_CHROOT 環境変数。プログラムが実行されているかのように実行されます。
呼ばれます chroot(2) 指定されたパス上にあります。 と -r、これは、
作業ディレクトリを指定されたディレクトリに移動します。 と -R、そうではありません。

-t タイムアウト
のタイムアウトを設定します。 ニックネーム デーモンを数秒で実行します。 現在のデフォルトは 30 です
秒。 これほど長い間、クライアントが接続されていない状態が続くと、 ニックネーム デーモンがシャットダウンする
自動的に。 クライアントが接続されている間、サーバーがシャットダウンすることはありません。 注記
これにより継続使用が妨げられるものではないこと。 新しいクライアントは次の場合にデーモンを再起動できます。
彼らにはそれが必要なのです。

-v (冗長)
の冗長性を高めます。 ニックネーム デーモン、およびあらゆるクライアント ライブラリ
この呼び出しによって開始されたプログラム ニックネーム。 これは数値と同等です
の形 PSEUDO_DEBUG 環境変数。 複数 -v オプションは増加します
デバッグレベル。

-x (デバッグ)
特定のデギング フラグを設定します ( ニックネーム ユーティリティのヘルプ メッセージにそれらがリストされています)。 これ
の文字列形式と同等です。 PSEUDO_DEBUG 環境変数。


最も一般的な XNUMX つの使用法 ニックネーム それを使用して特定のコマンドを実行し、セットアップしています
他のさまざまなコマンドを実行するための環境を手動で作成します。

最初のケースでは、使用法はかなり単純です。

$ /パス/へ/疑似
# コマンド which 必要とする ルート 特権

を使用する必要がある場合があります。 -P接頭辞 伝えるという選択肢 ニックネーム そのデータベースをどこで探すか、そして
サーバ。 フルパスで指定すると、 ニックネーム と仮定します PSEUDO_PREFIX パスであるべきです
を含むディレクトリに ニックネーム プログラム、または / binに を含むディレクトリ
ニックネーム プログラム。

他の使い方 ニックネーム それは環境を整えることです。 これは、次の用途に適しています。
Makefile または同様の環境で、一連のコマンドを実行したい場合
ニックネーム 環境を呼び出すことはできませんが、 ニックネーム 指示。 これを行うには、
PSEUDO_PREFIX, LD_PRELOAD、および LD_LIBRARY_PATH 環境変数を設定してからプログラムを実行します
通常は。 を個別に呼び出す必要はありません。 ニックネーム デーモン; クライアントライブラリ
必要に応じて起動します。

ディレクトリを移動した場合、 ニックネーム 追跡していたので、入手できるかもしれません
を使用してデータベースを再接続しました -m オプション。 典型的な使用法は次のとおりです。

$ /パス/へ/疑似 -B -m オールドパス -M 新しいパス

これは次のことを要求します ニックネーム 文字列を置き換える オールドパス 文字列で 新しいパス
ファイル名の先頭を削除してデータベースを再生成し、デバイス/inode を修正します。
数字。

診断


呼び出しに応じて、診断メッセージは通常、標準エラーまたは
file PSEUDO_PREFIX /var/pseudo/pseudo.log。 デフォルトでは、 ニックネーム デーモンメッセージは
ログ ファイルに保存されますが、クライアント コードによって生成されたメッセージは標準エラーに送られます。 これらは、
を使用して変更 PSEUDO_DEBUG_FILE 環境変数、に文書化されています ENVIRONMENT。 に
デフォルトのログレベルでは、重要なメッセージのみが表示されます。 を上げた場合は、
ロギング レベル ( -v オプションまたは PSEUDO_DEBUG 環境変数)、追加
というメッセージが表示されます。 2 より高いレベルは、それ以外では役に立たない可能性が非常に低いです。
ニックネーム 開発。

デフォルトで表示される診断メッセージは、次のいずれかを示していると考えられるものです。
~の重大な内部欠陥 ニックネーム または、基盤からの完全に予期しない障害
オペレーティング·システム。 通常の使用では、診断メッセージは表示されません。

ENVIRONMENT


最も重要な環境変数は、 ニックネーム   LD_PRELOAD および LD_LIBRARY_PATH.
ただし、これらの変数には特別な意味はありません。 ニックネーム; むしろ、それらは
動的リンカーを操作して、 libpseudo 図書館なので
基礎となる C ライブラリへの呼び出しをインターセプトする可能性があります。

次の環境変数は、によって直接使用されます。 ニックネーム:

PSEUDO_BINDIR
このディレクトリには、 ニックネーム バイナリ; デフォルトでは、 ビン
下のディレクトリ PSEUDO_PREFIX。

PSEUDO_CHROOT
この変数は、現在エミュレートされているデータを保持します。 chroot(2) パス。 相対的なパス
これに対して、ファイルシステムのルートに相対しているかのように扱われます。

PSEUDO_DEBUG
この変数は、数値の「デバッグ レベル」のいずれかを保持します。 ニックネーム またはセットで実行する
特定のデバッグ フラグ、通常は文字。 使用 ニックネーム -h 確認する
利用可能なフラグ。 一般に、これはデバッグの場合にのみ役立ちます。 ニックネーム そのもの。

PSEUDO_DEBUG_FILE
擬似クライアントからのメッセージのデバッグに使用するファイルの名前。 の
デフォルトでは、標準エラーにログが記録されます。 文字列に単一の文字列が含まれる場合、 %s、その
文字列は短いプログラム名に置き換えられます。 %d,
その文字列はプロセス ID に置き換えられます。 その他の形式指定子 (
'%%') は許可されません。 デフォルトでは、 ニックネーム サーバーログをファイルに記録する 疑似ログ
会場は 変数/擬似 ディレクトリに保存されますが、クライアントは標準エラーにログを記録します。

PSEUDO_DISABLED
この変数が f、F、n、N、s、S、または a のように見えない値に設定されている場合
数値のゼロ、 ニックネーム クライアント ライブラリは呼び出されたものの動作を変更しません
機能しますが、その間も信号を傍受し、ブロックし続けます。
それらを処理しています。 この変数は、呼び出しごとに再評価されます。 フォーク(2), (2)
または関連する機能。 値が小文字または大文字で始まる場合 s
擬似クライアントはすべてのサーバーの生成と通信を無効にしますが、引き続き動作します
地元で。 これは、実際にはファイルシステムのモードや権限の変更は行われないことを意味します。
記録または報告されますが、次のような機能があります chown() それでも成功を報告します
何も起こらないのに。 この機能は、次の問題のデバッグを目的としています。
サーバーが関与するため複雑になります。

PSEUDO_ALLOW_FSYNC
この変数が設定されている場合、擬似的に許可されます。 fsync() および関連するシステムコールも
で構成されました --enable-force-async オプション。 それ以外の場合は、そのオプション
その結果、そのような呼び出しはすべて、たとえ次の場合でもサイレントに破棄されます。 PSEUDO_DISABLED is
セット。 指定する値は重要ではありません。

PSEUDO_ENOSYS_ABORT
この変数が設定されている場合、 ニックネーム クライアントライブラリの呼び出し アボート() ではなく
設定 エラー 〜へ エノシス 基礎となる関数が見つからない呼び出しが発生した場合。
この変数にはデバッグ以外の機能はありません ニックネーム そのもの。

PSEUDO_LIBDIR
このディレクトリには、 ニックネーム 共有ライブラリ。 デフォルトでは、
  リブ 下のディレクトリ PSEUDO_PREFIX。 (64 ビット ホストでは、 lib64 も使われます。)

PSEUDO_LOCALSTATEDIR
このディレクトリには、 ニックネーム データベース ファイルとログ ファイル。 デフォルトでは、
  変数/擬似 下のディレクトリ PSEUDO_PREFIX.

PSEUDO_NOSYMLINKEXP
デフォルトでは、chroot されると、 ニックネーム 使用されるパスの先頭に chroot ディレクトリを追加します
絶対シンボリックリンクの場合。 この動作により、シンボリックリンクを開くと、
ほとんどの場合、期待される結果が得られます。 場合によっては、これを抑制したい場合もあります。 もし
この変数は設定されていないか、0 以外の値に設定されています。 ニックネーム シンボリックリンクを展開します
このような道。 この変数が 0 に設定されている場合、この動作は無効になります。

PSEUDO_OPTS
この変数は、新しいオブジェクトに渡されるオプションを保持します。 ニックネーム サーバーが開始されました。
通常、 ニックネーム ランチャーとして使用される場合、これは自動的に設定されます。
ただし、使用時にオプションを渡すために使用することもできます。 LD_PRELOAD 手動で実行するには
中のもの ニックネーム 環境。

PSEUDO_PASSWD
この変数は、パスワードとグループ ファイルを含むディレクトリへのパスを保持します。
さまざまなパスワードおよびグループ ルーチンのエミュレーションに使用します。 それが道であるはずだ
を含むディレクトリに という名前のファイルを含むディレクトリ passwd および
グループヘッド。 時 ニックネーム をエミュレートしています chroot 環境では、chroot ディレクトリは
優先的に使用されます。 これらのケース間の並列性が、この変数の理由です。
の親ディレクトリを指します を含むディレクトリではなく、
ファイル。 ない場合 chroot この変数も設定されていません。 ニックネーム
構成時に指定されたディレクトリにフォールバックします。デフォルトは
ルートディレクトリ。 これは次によって制御されます。 PSEUDO_PASSWD_FALLBACK 定義。

PSEUDO_PREFIX
設定されている場合、変数 PSEUDO_PREFIX 検索に使用するパスを決定するために使用されます
  ニックネーム サーバー、で PSEUDO_PREFIX/ binに、 そしてその ニックネーム データ ファイル、
PSEUDO_PREFIX/var/疑似。 この変数は、 ニックネーム
ランチャーとして使用する場合のプログラム。

PSEUDO_PROFILE_PATH
If ニックネーム プロファイリングを有効にして構成されており、プロファイリングを実行するパスを指定します。
で使用するクライアント プロファイリング情報を書き込みます。 疑似プロファイル ユーティリティ (そうではありません)
デフォルトで構築されます)。

PSEUDO_TAG
この変数がクライアントの環境で設定されている場合、その値はクライアントに伝達されます。
各クライアント セッションの開始時にサーバーがログに記録されます。
特定のクライアントに関連してログが発生した場合は、データベースにアクセスします。 異なることに注意してください
クライアントには異なるタグが関連付けられている場合があります。 タグの値はクライアントごとです。
サーバーごとではありません。

PSEUDO_UIDS, PSEUDO_GIDS
これらの変数は、現在エミュレートされているコンポーネントに関する情報を渡すために内部的に使用されます。
あるプロセスから別のプロセスへのユーザーおよびグループの ID。

PSEUDO_UNLOAD
この変数は、呼び出しごとに再評価されます。 フォーク(2), exec(3) または関連する
機能。 変数が存在する場合、libpseudo.so はから削除されます。 LD_PRELOAD
および PSEUDO_DISABLED という行動も引き起こされます。 単に
フォーク(2) 動作は次のようになります PSEUDO_DISABLED 設定されました。 新品の場合
呼び出し後のプロセス exec(3) or  (3) pseudo はロードされません
新しいプロセス。

SHELL 設定されている場合、これは次の場合に使用されます。 ニックネーム コマンドなしで呼び出されます。
コマンドの実行以外のことを行うように指示するオプションの一部。
さもないと、 ニックネーム デフォルトは /bin/sh .

onworks.net サービスを使用した疑似オンラインの使用



最新のLinuxおよびWindowsオンラインプログラム