このページでは、頻繁に使用されるシェルコマンドを実行するためのボタンを作成するために使用できるWebminのカスタムコマンドモジュールについて説明します。
コンテンツ
カスタムコマンドモジュール
ほとんどのシステム管理者は、データベースのバックアップやある種の新しいユーザーの追加など、一般的なタスクを実行するためのシェルスクリプトを作成することを好みます。システムと組織はそれぞれ異なるため、Webminのような一般化されたツールでは単純なカスタマイズされたスクリプトほど簡単には実行できないタスクが常に存在します。残念ながら、コマンドラインで実行されるスクリプトは、経験の浅いユーザーが使用するのは簡単ではありません。
カスタムコマンドモジュールを使用すると、シェルスクリプトとコマンド用のシンプルなWebインターフェイスを作成できるため、ボタンをクリックするだけでWebmin内から実行できます。また、ユーザーが入力してシェルコマンドに置き換えることができる、コマンドごとにさまざまなタイプのパラメーターを定義することもできます。これは、実行前にユーザーが行った選択に応じて、実行されるスクリプトに追加の引数または入力を提供するために使用できます。
このモジュールのもう1つの機能は、ファイルエディターを定義する機能です。これにより、頻繁に変更されるファイルをWebminのWebインターフェイスから編集できます。また、ファイルを編集する前後に実行するコマンドを定義して、編集前にファイルを検証、コピー、またはバックアップできるようにすることもできます。
おそらく、モジュールの最も便利な機能は、アクセス制御のサポートです。他のWebminユーザーに、コマンドとエディターの一部またはすべてを使用する権限を付与する一方で、自分自身と他の信頼できる管理者のみにコマンドを作成および編集する権限を与えることができます。これは、他のユーザーがスクリプトを実行し、許可したファイルを編集することしかできないことを意味しますが、完全なルート権限はありません。
他のほとんどのモジュールとは異なり、これはいくつかの個別のサーバーまたはサービスの構成を処理しません。したがって、Webminを実行できるすべてのバージョンのUnixでまったく同じユーザーインターフェイスと機能を備えています。
その他のカテゴリからモジュールを入力すると、そのメインページに、既存のすべてのカスタムコマンドとファイルエディタが、それらのパラメータとともに表示されます。以下のスクリーンショットは、1つのファイルエディターと8つのコマンドが定義されたシステムの例を示しています。そのうちの2つにはパラメーターがあります。以前にモジュールを使用したことがない場合でも、ページは空になります。
カスタムコマンドモジュール
ボタンをクリックするだけで、メインページに表示されている任意のコマンドを実行できます。ただし、コマンドにパラメータフィールドまたは選択肢がある場合は、実行する前にそれらに入力するか、適切な選択を行う必要があります。ボタンをクリックすると、コマンドからのすべての出力を表示するページが表示され、コマンドが成功したか失敗したかを確認できます。
ファイルエディタを使用するには、メインページのボタンをクリックするだけです。これにより、現在のファイルの内容を表示する編集フォームが表示され、自由に変更できます。完了したら、保存をクリックします テキストボックスの下にあるボタンをクリックして、新しいファイルの内容を書き出します。
新しいコマンドの作成
モジュールのメインページのボタンを使用して実行できる新しいコマンドを作成するには、次の手順に従います。
- 新しいカスタムコマンドの作成をクリックします 既存のボタンの上または下にリンクします。これにより、下の画像に示す作成フォームが表示されます。
- コマンドの簡単な説明を説明に入力します 分野。入力したテキストはすべて、メインページのコマンドボタンに表示されます。ボタンの下に表示される追加のテキスト(HTMLタグを含む)をその下の大きなテキストボックスに入力することもできます。
- コマンド フィールドに、実行するシェルスクリプトまたはコマンドを入力します。すべての標準シェルメタ文字{| border ="1" |-がサポートされています(||、&、<、>など)。複数のコマンドを入力するには、|}コマンドを;で区切ります。また &&。コマンドにパラメーター(ステップ10で設定)がある場合、コマンドの実行時にそれらは環境変数に変換されます。したがって、fooというパラメーターがある場合、コマンド文字列内の$ fooのすべての出現は、ユーザーがそのパラメーターに入力したものに置き換えられます。たとえば、ユーザーがシステム上の任意のユーザーに指を置くことができるコマンドは、 finger $ userのようになります。 。
- デフォルトでは、コマンドはこのモジュールのWebminディレクトリで実行されます。これを変更するには、デフォルトの選択を解除します ディレクトリで実行の場合 フィールドに入力し、その横のテキストボックスに別のパスを入力します。
- ユーザーとして実行 フィールドに、コマンドを実行するUnixユーザーの名前を入力します。代わりにWebminユーザーを選択できます。これにより、Webminユーザーを実行するWebminユーザーと同じ名前のUnixユーザーとして実行されます。コマンドを実行すると、通常、UnixユーザーがtelnetまたはSSH経由でログインした場合と同じ環境変数にアクセスできなくなります。ただし、ユーザーの環境を使用するを確認すると オプションを選択すると、ユーザーの.profile、.cshrc、およびその他のログインファイルに設定されているすべての変数が使用可能になります。 Webminはsuを使用してコマンドを実行します。これにより、ユーザーに切り替わり、シェルが実行されてから、コマンドが実行されます。
- コマンドの実行時にブラウザに表示するHTML出力が生成される場合は、[*コマンド出力HTML?*]フィールドをはいに変更します。 。そうしないと、Webminは出力内のすべてのHTMLタグをエスケープします。これは、通常のテキストのみを生成するコマンドに対して行う正しいことです。
- モジュールのフロントページでの新しいコマンドの配置を制御するには、メインページでの注文の番号を入力します オプション。コマンドは、番号が最も大きいコマンドが最初に表示されるように並べられています。 デフォルトの場合 が選択されている場合、注文番号はゼロと見なされます。カスタムコマンドの注文番号を設定しない場合は、作成された順序で表示されます。
- ボタンがクリックされたときに実行されている実際のシェルコマンドがユーザーに表示されないようにするには、[実行時にコマンドを非表示にしますか?]フィールドをはいに設定します。 。これは、コマンドにパスワードやユーザーから隠したいその他の機密情報が含まれている場合に適しています。
- コマンドをUserminのカスタムコマンドモジュールに表示するには、 Available in Usermin?を変更します。 はいへのフィールド 。 Userminをインストールおよび構成する方法の詳細については、UserminConfigurationを参照してください。
- ユーザーがメインページで設定できるパラメータをコマンドに含める場合は、コマンドパラメータを入力する必要があります。 セクション。このセクションの表の各行は1つのパラメータを定義しており、それぞれに次の情報を入力する必要があります。
- 名前
- このパラメータの短い一意の名前。コマンドで使用できます。 ユーザーが入力した値をどこに置き換えるかを示すフィールド(接頭辞$)。名前は、文字、数字、および_文字のみで構成する必要があります。
- 説明
- モジュールのメインページでパラメータにラベルを付けるテキスト。これには、HTMLタグを含む任意の文字を含めることができますが、長すぎないようにする必要があります。
- タイプ
- このメニューは、モジュールのメインページでのパラメーターの表示方法と、許可される入力を制御します。最も一般的な選択はテキストです 、ただし、使用可能なすべてのオプションとその意味は、パラメータタイプで説明されています。 以下のセクション。
- 引用パラメータ?
- はいに設定されている場合 、ユーザーが入力した値は、置換前に「文字」で引用されます。新しいコマンドを作成する場合、単一のパラメーターを入力するための空の行が1つだけ使用できます。さらに追加するには、コマンドを保存してから再編集する必要があります。 。
- 最後に、新しいコマンドの詳細の入力が完了したら、作成をクリックします。 ボタン。フォームにエラーがない限り、モジュールのメインページに戻り、新しいコマンドボタンが表示されます。
新しいカスタムコマンドの作成
コマンドを作成したら、コマンドの編集をクリックしてコマンドを編集できます。 モジュールのメインページでその下にリンクします。上記のすべてのフィールドを変更したり、パラメータを追加したりできます。変更が完了したら、[保存]をクリックします ページ下部のボタン。または、コマンドを削除するには、削除をクリックします 代わりに右下隅にあるボタン。
パラメータタイプ
コマンドのパラメータごとに、[タイプ]の下のメニューからタイプを選択できます。 桁。使用可能なオプションとその意味は次のとおりです。
- テキスト
- テキスト入力フィールド
- args[テキストフィールドのデフォルトテキスト]
- ユーザー
- ユーザー名入力フィールド
- args[ユーザーフィールドのデフォルトのユーザー名]
- UID
- ユーザーID入力フィールド
- args[UIDフィールドのデフォルトのユーザーID]
- グループ
- グループ名入力フィールド
- args[グループフィールドのデフォルト名]
- GID
- グループID入力フィールド
- args[GIDフィールドのデフォルトのグループID]
- ファイル
- ファイル(サーバー側)入力フィールドを選択
- args[デフォルト/path/ to / server / file]
- ディレクトリ
- ディレクトリ(サーバー側)入力フィールドを選択
- args[デフォルト/path/ to / server / directory /]
- オプション..
- はい| no boolean field
- args["はいが選択された場合に渡される値"]
- パスワード
- パスワード入力フィールド
- args[デフォルトのパスワード]
- メニュー..
- オプション選択メニュー入力フィールド
- 引数[/path/to/option/file.txt]
- メニューオプションがファイルに一覧表示されます。 [タイプ]パラメーターの[引数]フィールドに、/ path / to/myMenu_options.txtファイルへのパスとファイル名を入力します。 myMenu_options.txtファイルには、「キー」「値」として1行に1つのオプションが含まれています。 「キー」は、カスタムコマンドスクリプトに渡されるものです。 「値」は、ユーザーに表示されるものです。
- 引数[/path/to/option/file.txt]
- アップロード
- ファイル(ユーザー側)入力フィールドを選択
- args[デフォルトのパス/ファイル]
- テキストボックス
- textarea入力フィールド
- args[テキストボックスのデフォルトテキスト]
- マルチメニュー..
- ネストされたオプション選択入力フィールド
- argsメニュータイプと同様ですが、複数選択できます
- 大きなマルチメニュー..
- 複雑なネストされた選択入力フィールド
- argsマルチメニューと同じですが、すべてのオプションを表示するのに十分な高さです
- 左右のメニュー..
- 左<->右メニューウィジェット
- args機能的にはマルチメニューと同じですが、左側にオプションが表示され、右側に選択された値が表示されます
- 日付
- date select input field
- args[デフォルトの日付はYYYY-MM-DD形式]
- 送信ボタン
- 送信コマンドボタン
- argsボタンだけ
新しいファイルエディタの作成
モジュールのメインページにファイルを編集するための新しいボタンを追加するには、次の手順を実行する必要があります。
- 新しいファイルエディタの作成をクリックします 既存のボタンの上または下にリンクします。これにより、下の画像に示すエディター作成フォームが表示されます。
- 編集するファイルの簡単な説明を説明に入力します 分野。入力したテキストはすべて、メインページのエディターのボタンに表示されます。ボタンの下に表示される追加のテキスト(HTMLタグを含む)をその下の大きなテキストボックスに入力することもできます。
- 編集するファイルへのフルパスを[編集するファイル]フィールドに入力します。ファイルは必ずしもまだ存在している必要はありません。
- 保存時にファイルの所有者を変更するには、[ファイルの所有権]フィールドをユーザーに設定します。 そして、Unixのユーザー名とグループ名をその隣のフィールドに入力します。これは、まだ存在していないファイルを編集するときに特に役立ちます。これにより、新しく作成されたファイルの所有権が適切に設定されます。フィールドをそのままにするに設定したままにした場合 、ファイルの所有権は保存時に変更されません。新しく作成されたファイルはrootが所有します。
- 保存時にファイルのアクセス許可を変更するには、ファイルの許可を設定します フィールドを8進数に設定 権限を入力します( 700 など) または664 )その隣のフィールドに。 そのままにするを選択します 、ファイルの保存時にファイルの権限は変更されません。新しく作成されたファイルの権限は、Webminプロセスのumaskによって異なります。
- ユーザーがファイルを保存する直前にコマンドを実行するには、*フィールドを保存する前に実行する*コマンドを入力します。これは、バックアップコピーを作成したり、RCSからファイルをチェックアウトしたり、その他の考えられることを行う場合に役立ちます。
- 同様に、ファイルが保存された直後にコマンドを実行するには、C*ommandに入力して[保存後に実行する*]フィールドに入力します。これは、ファイルの内容を検証したり、別のシステムにコピーしたり、RCSにチェックインしたりする場合に役立ちます。
- モジュールのフロントページでの新しいエディターのボタンの配置を制御するには、[メインページでの注文]オプションに番号を入力します。コマンドとエディターは、番号が最も大きいものが最初に表示されるように並べられています。 デフォルトの場合 が選択されている場合、注文番号はゼロと見なされます。どのファイルエディタにも注文番号を設定しない場合は、作成された順序で表示されます。
- エディターをUserminのカスタムコマンドモジュールに表示するには、 Userminで使用できますか?を変更します。 はいへのフィールド 。 Userminをインストールおよび構成する方法の詳細については、UserminConfigurationを参照してください。
- 最後に、[保存]をクリックします ボタン。フォームにエラーがない場合は、モジュールのメインページに戻り、新しいエディターのボタンが表示されます。
新しいファイルエディタの作成
エディターが作成されたら、モジュールのメインページでその下にある*ファイルエディターの編集*リンクをクリックして編集できます。変更が完了したら、[保存]をクリックします ページ下部のボタン。または、エディタを削除するには、削除をクリックします 代わりに右下隅にあるボタン。
モジュールアクセス制御
カスタムコマンドモジュールのアクセス制御オプションは、マスターWebminユーザーが他のユーザーに選択したコマンドを実行する権限を与えることができるように設計されていますが、コマンドを編集または作成することはできません。セキュリティの観点から、信頼できないユーザーに独自のカスタムコマンドを作成する権限を与えることは意味がありません。これにより、rootとして任意のコマンドを実行できるようになり、システム全体のセキュリティが損なわれる可能性があります。同様に、Webminユーザーが使用できるファイルエディターを制限し、Webminユーザーが新しいエディターを作成できないようにすることができます。
カスタムコマンドモジュールにアクセスできるユーザーまたはグループを作成したら(第52章で説明)、アクセスを制限するための手順は次のとおりです。
- Webminユーザーモジュールで、アクセスを許可するユーザーまたはグループの名前の横にある[カスタムコマンド]をクリックします。これにより、モジュールのアクセス制御フォームが表示されます。
- モジュール構成を編集できますか?を変更します いいえへのフィールド 。
- ユーザーがすべてのコマンドを実行してすべてのエディターを使用できるようにする場合を除き、このユーザーが実行できるコマンドを設定します。 選択済みへのフィールド そして、彼が使用を許可されるべきものを以下のリストから選択してください。または、[選択したものを除くすべて]を選択し、リストから使用を許可しないコマンドを選択することもできます。他のすべては彼が利用できるようになります。
- コマンドを作成および編集できますか?を変更します いいえへのフィールド 。
- 保存をクリックします ボタン。アクセス制御設定がアクティブになり、Webminユーザーモジュールのメインページに戻ります。
選択したカスタムコマンドとエディターへのアクセスを多数のユーザーに許可する場合は、すべてのUnixユーザーがログインできるUserminをインストールすることをお勧めします。 Userminで使用できるコマンドはありますか? フィールドがはいに設定されている Userminのカスタムコマンドモジュールに表示され、まったく同じように機能します。 Userminの詳細と、カスタムコマンドを実行できるUnixユーザーを制限するようにUserminを構成する方法については、Userminの構成を参照してください。