21.3.4. コマンドラインでの sudo ルールの定義
各要素は、異なるコマンド (表21.1「sudo コマンド」に一覧あり) を使用して、ルールコマンドに追加されます。
sudo ルールコマンドの基本的な概要は、以下のとおりです。
ipa sudorule-add* options ruleName
$ ipa sudorule-add* options ruleName
例21.1 基本的な sudo ルールの作成
最も基本的なケースでは、sudo 設定が、1 つのホストの 1 つのコマンドに対して、1 つのユーザーに適切な権限を付与します。
最初のステップでは、最初のルールエントリーを追加します。
次に、アクセス権限を付与するコマンドを追加します。これは、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
--sudocmds
の単一のコマンド、または --sudocmdgroups
を使用したコマンドグループで行うことができます。
ルールにホストまたはホストグループを追加します。
最後に、ユーザーまたはグループをルールに追加します。これは、ルールで定義されたとおりに sudo を使用可能なユーザーです。「run-as」ユーザーが指定されていない場合、このユーザーは root として sudo コマンドを実行します。
例21.2 コマンドの許可と拒否
sudo ルールは、コマンドへのアクセスを許可したり、アクセスを拒否することができます。たとえば、このルールではファイルへの読み取りアクセスが許可されますが、編集はできません。
kinit admin ipa sudorule-add-allow-command --sudocmds "/usr/bin/less" readfiles ipa sudorule-add-allow-command --sudocmds "/usr/bin/tail" readfiles ipa sudorule-add-deny-command --sudocmds "/usr/bin/vim" readfiles
[jsmith@server ~]$ kinit admin
[jsmith@server ~]$ ipa sudorule-add-allow-command --sudocmds "/usr/bin/less" readfiles
[jsmith@server ~]$ ipa sudorule-add-allow-command --sudocmds "/usr/bin/tail" readfiles
[jsmith@server ~]$ ipa sudorule-add-deny-command --sudocmds "/usr/bin/vim" readfiles
例21.3 sudoers オプションの使用
この sudoers ファイルには、sudo ユーザーの動作を制御するようにセットできる見込みフラグが多くあります。これは、ユーザーが sudo に対する認証を行うためにパスワードを必須としたり (あるいは必須としない)、sudoers ファイルで完全に資格のあるドメイン名を使用するような動作です。オプションの完全なリストは sudoers man ページにあります。
この sudorule-add-option コマンドを使用して、IdM sudo ルールにオプションのいずれかを設定できます。コマンドを実行すると、オプションを追加するプロンプトが表示されます。
注記
「sudo オプションのフォーマットについて」で説明されているように、値に空白があるオプションを使用しないでください。1 行にオプションの一覧を追加するのではなく、目的のオプションごとに 1 つのオプション設定を追加します。
例21.4 他のユーザーとしての実行
sudo ルールには、root 以外のユーザーまたはグループを指定してコマンドを実行することもできます。最初のルールには、
--sudorule-add-runasuser
または --sudorule-add-runasgroup
コマンドを使用してそれぞれユーザーまたはグループが指定されています。
ipa sudorule-add-runasuser --users=jsmith readfiles ipa sudorule-add-runasgroup --groups=ITadmins readfiles
$ ipa sudorule-add-runasuser --users=jsmith readfiles
$ ipa sudorule-add-runasgroup --groups=ITadmins readfiles
ルールの作成時に、sudorule-add-runasuser または sudorule-add-runasgroup コマンドは 特定 のユーザーまたはグループのみを設定できます。ただし、ルールを編集する場合は、
--runasusercat
または --runasgroupcat
を使用して、すべてのユーザーまたはすべてのグループとして sudo を実行できます。たとえば、以下のようになります。
ipa sudorule-mod --runasgroupcat=all ruleName
$ ipa sudorule-mod --runasgroupcat=all ruleName
注記
--sudorule-add-runasuser
および --sudorule-add-runasgroup
コマンドは、特定のユーザー名またはグループ名のみに対応しており、all オプションには対応していません。すべてのユーザーまたはすべてのグループの指定は、sudorule-mod コマンドでオプションとともにのみ使用できます。
例21.5 外部ユーザーの参照
sudo ルールの「who」は IdM ユーザーですが、論理的で有用なルールが多数あります。この指定の 1 つがシステムユーザーです。同様に、ルールは、IdM クライアントではないネットワーク上のホストマシンへのアクセスを許可または拒否する必要がある場合があります。
外部アイデンティティーを sudo ルールに追加するオプションは次のとおりです。
- --externaluser
- --runasexternaluser
以下に例を示します。
ipa sudorule-add-user --externaluser=ITAdmin readfiles ipa sudorule-add-runasuser --runasexternaluser=root readfiles
$ ipa sudorule-add-user --externaluser=ITAdmin readfiles
$ ipa sudorule-add-runasuser --runasexternaluser=root readfiles
コマンド | 説明 |
---|---|
sudorule-add | sudo ルールエントリーを追加します。 |
sudorule-add-user | ユーザーまたはユーザーグループを sudo ルールに追加します。このユーザー (またはグループのすべてのメンバー) は、ルール内のコマンドのいずれかを sudo することができます。 |
sudorule-add-host | ルールのターゲットホストを追加します。これらは、ユーザーに sudo パーミッションが付与されるホストです。 |
sudorule-add-runasgroup | sudo コマンドを実行するには、グループを設定します。これは特定のユーザーである必要があります。すべてのユーザーを指定するには、sudo-rule を使用してルールを変更します。 |
sudorule-add-runasuser | sudo コマンドを実行するには、ユーザーを設定します。これは特定のユーザーである必要があります。すべてのユーザーを指定するには、sudo-rule を使用してルールを変更します。 |
sudorule-add-allow-command | ルールのユーザーが実行に sudo パーミッションを持つコマンドを追加します。 |
sudorule-add-deny-command | ルールのユーザーが、実行する sudo パーミッションを 拒否されたコマンドを追加します。 |
sudorule-add-option | sudo ルールに sudoers フラグを追加します。 |
sudorule-disable | sudo ルールエントリーを一時的に非アクティブにします。 |
sudorule-enable | 以前に一時停止した sudo ルールをアクティベートします。 |
sudorule-del | sudo ルールを完全に削除します。 |
例21.6 コマンドラインからの新規 sudo
ルール追加および修正
選択したサーバーで特定のユーザーグループが
sudo
ですべてのコマンドを使用できるようにするには、以下の手順を実行します。
admin
ユーザーまたはsudo
ルールの管理を許可されている他のユーザー用に Kerberos チケットを取得します。kinit admin
$ kinit admin Password for admin@EXAMPLE.COM:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新規
sudo
ルールを IdM に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - who を定義します。
sudo
ルールの使用が許可されるユーザーのグループを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - where を定義します。ユーザーに
sudo
パーミッションが付与されるホストのグループを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - what を定義します。どの
sudo
コマンドもユーザーが実行することを許可するには、all
コマンドカテゴリーをルールに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo
コマンドを root として実行するには、run-as ユーザーまたはグループを指定しないでください。sudo
コマンド使用時にユーザー認証が要求されないようにするには、!authenticate
sudoers
を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新規の
sudo
ルール設定を表示して、内容を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow