rcmd サブルーチン
目的
リモート・ホストでのコマンドの実行を許可します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
Port, LocalUser, RemoteUser, Command, ErrFileDesc)
char ** Host;
u_short Port;
char * LocalUser;
char * RemoteUser;
char * Command;
int * ErrFileDesc;
説明
rcmd サブルーチンを使用すると、 rshd、 rlogin、および rpc などをサポートするリモート・ホスト上で、特定のコマンドを実行することができます。
rcmd サブルーチンを使用できるのは、root ユーザーの実効ユーザー ID を持つプロセスだけです。 リモート・ポート番号に基づく認証スキームは、許可を検証するために使用されます。 0 から 1023 までの範囲のポートは、root ユーザーのみが使用できます。 アプリケーションは、 Portを渡す必要があります。これは、512 から 1023 の範囲内でなければなりません。
rcmd サブルーチンは、 /etc/hosts ファイルで、ネーム・サーバーを介して、またはローカル・ネーム・サーバーが実行されていない場合に、ホストを検索します。
接続が成功すると、 SOCK_STREAM タイプのインターネット・ドメイン内のソケットが呼び出しプロセスに戻され、標準入力 (stdin) および標準出力 (stdout) としてリモート・コマンドに与えられます。
常に Host パラメーターを指定してください。 ローカル・ドメインとリモート・ドメインが同じ場合は、ドメイン部分の指定はオプションです。
rcmd サブルーチンを含むすべてのアプリケーションは、特定の値に設定された _BSD マクロを使用してコンパイルする必要があります。 許容値は 43 および 44 です。 さらに、すべてのソケット・アプリケーションに BSD libbsd.a ライブラリーを組み込む必要があります。
パラメーター
| 項目 | 説明 |
|---|---|
| Host | /etc/hosts ファイルにリストされているリモート・ホストの名前を指定します。 指定されたホスト名がこのファイルに見つからない場合、 rcmd サブルーチンは失敗します。 |
| ポート | 接続に使用するウェルノウン・ポートを指定します。 /etc/services ファイルには、DARPA インターネット・サービス、そのポート、およびソケット・タイプが入っています。 |
| LocalUser および RemoteUser | ローカル・ホストとリモート・ホストでそれぞれ有効なユーザー名を指します。 任意の有効なユーザー名を指定できます。 |
| Command | リモート・ホストで開始するコマンドの名前を指定します。 |
| ErrFileDesc | 通信チャネルのセットアップを制御する整数を指定します。 整数オプションは以下のとおりです。
|
戻り値
正常終了すると、 rcmd サブルーチンは有効なソケット・ディスクリプターを戻します。
失敗すると、rcmdサブルーチンは-1を返す。 呼び出しプロセスの実効ユーザーIDがルート・ユーザーでない場合、またはサブルーチンがホストの解決に失敗した場合、サブルーチンは-1を返す。
ファイル
| 項目 | 説明 |
|---|---|
| /etc/services | サービス名、ポート、およびソケット・タイプが含まれます。 |
| /etc/hosts | ネットワーク内のホストのホスト名とそのアドレスが含まれます。 |
| /etc/resolv.conf | ネーム・サーバーとドメイン・ネームが入っています。 |