28.2. CLI での IdM パーミッションの管理
コマンドラインインターフェイス (CLI) を使用して Identity Management (IdM) のパーミッションを管理するには、次の手順に従います。
前提条件
- IdM、または ユーザー管理者 ロールを管理する管理者権限
- 有効な Kerberos チケット。詳細は、Using kinit to log in to IdM manually を参照してください。
手順
ipa permission-add
コマンドを使用して、新しいパーミッションエントリーを作成します。
たとえば、dns admin という名前のパーミッションを追加するには、次のコマンドを実行します。$ ipa permission-add "dns admin"
以下のオプションでパーミッションのプロパティーを指定します。
--bindtype
は、バインドルールの種別を指定します。このオプションでは、all
、anonymous
およびpermission
引数を使用できます。permission
バインドタイプは、ロールを使用してこのパーミッションを付与されたユーザーのみが実行できます。
以下に例を示します。$ ipa permission-add "dns admin" --bindtype=all
--bindtype
を指定しないと、permission
がデフォルト値になります。注記特権には、デフォルト以外のバインドルールタイプが指定されたパーミッションを追加できません。特権に既存のパーミッションは、デフォルト以外のバインドルールタイプには設定できません。
--right
は、パーミッションが付与する権限をリスト表示します。これは、非推奨の--permissions
オプションに代わるものです。使用できる値はadd
、delete
、read
、search
、compare
、write
、all
になります。複数の属性を設定するには、複数の
--right
オプションを使用するか、中括弧内にコンマ区切りリストを使用します。以下に例を示します。$ ipa permission-add "dns admin" --right=read --right=write
$ ipa permission-add "dns admin" --right={read,write}
注記add
およびdelete
はエントリーレベルの操作 (ユーザーの削除、グループの追加など) ですが、read
、search
、compare
、write
は、属性レベル (userCertificate
への書き込み可、userPassword
の読み込み不可) に近いです。--attrs
は、パーミッションが付与される属性のリストを提供します。
複数の属性を設定するには、複数の--attrs
オプションを使用するか、オプションを中括弧内にコンマ区切りリストでリスト表示します。以下に例を示します。$ ipa permission-add "dns admin" --attrs=description --attrs=automountKey
$ ipa permission-add "dns admin" --attrs={description,automountKey}
--attrs
で指定の属性が存在し、指定のオブジェクトタイプで使用可能な属性である必要があります。この条件を満たさない場合には、コマンドがスキーマ構文エラーで失敗します。--type
は、ユーザー、ホスト、サービスなどのパーミッションが適用されるエントリーオブジェクトタイプを定義します。各タイプには、独自の許可属性セットがあります。
以下に例を示します。$ ipa permission-add "manage service" --right=all --type=service --attrs=krbprincipalkey --attrs=krbprincipalname --attrs=managedby
--subtree
ではサブツリーエントリーを指定します。フィルターはこのサブツリーエントリーの配下にあるエントリーを対象とします。既存のサブツリーエントリーを指定します。--subtree
ではワイルドカードや存在しないドメイン名 (DN) は使用できません。ディレクトリーに DN を追加します。
IdM は簡素化されたフラットディレクトリーツリー構造を使用しているため、--subtree
を使用して自動マウントの場所 (他の設定のコンテナーまたは親エントリー) など、一部のエントリーを対象にできます。以下に例を示します。$ ipa permission-add "manage automount locations" --subtree="ldap://ldap.example.com:389/cn=automount,dc=example,dc=com" --right=write --attrs=automountmapname --attrs=automountkey --attrs=automountInformation
注記--type
オプションおよび--subtree
オプションを同時に使用できません。--subtree
を簡素化したものとして、--type
のフィルターに含まれている内容を確認できます (これにより、管理者の作業が簡単になります)。--filter
は LDAP フィルターを使用して、パーミッションが適用されるエントリーを特定します。
IdM は、指定のフィルターの有効性を自動的に確認します。このフィルターには、有効な LDAP フィルターを使用できます。以下に例を示します。$ ipa permission-add "manage Windows groups" --filter="(!(objectclass=posixgroup))" --right=write --attrs=description
--memberof
は、グループが存在することを確認した後に、指定したグループのメンバーにターゲットフィルターを設定します。たとえば、このパーミッショを持つユーザーがエンジニアリンググループのメンバーのログインシェルを変更できるようにするには、以下を実行します。$ ipa permission-add ManageShell --right="write" --type=user --attr=loginshell --memberof=engineers
--targetgroup
は、グループが存在することを確認した後に、ターゲットを指定のユーザーグループに設定します。たとえば、このパーミッションを持つグループが、エンジニアリンググループのメンバー属性に (メンバーの追加や削除ができるように) 書き込みできるようにするには、以下を実行します。$ ipa permission-add ManageMembers --right="write" --subtree=cn=groups,cn=accounts,dc=example,dc=test --attr=member --targetgroup=engineers
必要に応じて、ターゲットドメイン名 (DN) を指定できます。
-
--target
は、パーミッションを適用する DN を指定します。ワイルドカードは使用できます。 -
--targetto
は、エントリーの移動先に設定できる DN サブツリーを指定します。 -
--targetfrom
は、エントリーの移動元に設定できる DN サブツリーを指定します。
-