検索

5.16. Podman での事前実行フックの設定

download PDF

プラグインスクリプトを作成して、コンテナー操作の詳細な制御を定義できます。特に、コンテナーイメージのプル、実行、リストなどの不正なアクションをブロックできます。

注記

ファイル /etc/containers/podman_preexec_hooks.txt は管理者が作成する必要があり、空であってもかまいません。/etc/containers/podman_preexec_hooks.txt が存在しない場合、プラグインスクリプトは実行されません。

次のルールがプラグインスクリプトに適用されます。

  • root 所有である必要があり、書き込み可能ではありません。
  • /usr/libexec/podman/pre-exec-hooks および /etc/containers/pre-exec-hooks ディレクトリーに配置する必要があります。
  • 英数字順に順次実行します。
  • すべてのプラグインスクリプトがゼロ値を返す場合、podman コマンドが実行されます。
  • いずれかのプラグインスクリプトがゼロ以外の値を返した場合、それは失敗を示します。podman コマンドは終了し、最初に失敗したスクリプトのゼロ以外の値を返します。
  • Red Hat では、スクリプトを正しい順序で実行するために、DDD_name.lang という命名規則を使用することを推奨します。

    • DDD は、スクリプトの実行順序を示す 10 進数です。必要に応じて、先頭に 1 つまたは 2 つのゼロを使用します。
    • name はプラグインスクリプトの名前です。
    • lang (オプション) は、指定されたプログラミング言語のファイル拡張子です。たとえば、プラグインスクリプトの名前は 001-check-groups.sh のようになります。
注記

プラグインスクリプトは作成時点で有効です。プラグインスクリプトの前に作成されたコンテナーは影響を受けません。

前提条件

  • container-tools モジュールがインストールされている。

手順

  • 001-check-groups.sh という名前のスクリプトプラグインを作成します。以下に例を示します。

    #!/bin/bash
    if id -nG "$USER" 2> /dev/null | grep -qw "$GROUP" 2> /dev/null ; then
        exit 0
    else
        exit 1
    fi
    • スクリプトは、ユーザーが指定されたグループに属しているかどうかを確認します。
    • USERGROUP は、Podman によって設定される環境変数です。
    • 001-check-groups.sh スクリプトによって提供される終了コードは、podman バイナリーに提供されます。
    • podman コマンドは終了し、最初に失敗したスクリプトのゼロ以外の値を返します。

検証

  • 001-check-groups.sh スクリプトが正しく動作するかどうかを確認します。

    $ podman run image
    ...

    ユーザーが正しいグループに属していない場合は、次のエラーが表示されます。

    external preexec hook /etc/containers/pre-exec-hooks/001-check-groups.sh failed
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.