20.2. CLI での IdM クライアントの IdM ユーザーへの sudo アクセス許可
Identity Management (IdM) では、特定の IdM ホストで IdM ユーザーアカウントの特定コマンドに sudo
アクセスを付与できます。最初に sudo
コマンドを追加してから、1 つまたは複数のコマンドに対して sudo
ルールを作成します。
たとえば、idmclient マシンで /usr/sbin/reboot
コマンドを実行する権限を idm_user に付与する idm_user_reboot の sudo
ルールを作成するには、以下の手順を実行します。
前提条件
- IdM 管理者としてログインしている。
- IdM で idm_user のユーザーアカウントを作成し、ユーザーのパスワードを作成してそのアカウントのロックを解除している。CLI を使用して新しい IdM ユーザーを追加する方法の詳細は、コマンドラインを使用したユーザーの追加 を参照してください。
-
idmclient ホストにローカル idm_user アカウントが存在しない。idm_user ユーザーは、ローカルの
/etc/passwd
ファイルには表示されません。
手順
IdM の
管理者
として Kerberos チケットを取得します。[root@idmclient ~]# kinit admin
sudo
コマンドの IdM データベースに/usr/sbin/reboot
コマンドを追加します。[root@idmclient ~]# ipa sudocmd-add /usr/sbin/reboot ------------------------------------- Added Sudo Command "/usr/sbin/reboot" ------------------------------------- Sudo Command: /usr/sbin/reboot
idm_user_reboot という名前の
sudo
ルールを作成します。[root@idmclient ~]# ipa sudorule-add idm_user_reboot --------------------------------- Added Sudo Rule "idm_user_reboot" --------------------------------- Rule name: idm_user_reboot Enabled: TRUE
/usr/sbin/reboot
コマンドを idm_user_reboot ルールに追加します。[root@idmclient ~]# ipa sudorule-add-allow-command idm_user_reboot --sudocmds '/usr/sbin/reboot' Rule name: idm_user_reboot Enabled: TRUE Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
idm_user_reboot ルールを IdM idmclient ホストに適用します。
[root@idmclient ~]# ipa sudorule-add-host idm_user_reboot --hosts idmclient.idm.example.com Rule name: idm_user_reboot Enabled: TRUE Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
idm_user アカウントを idm_ user_reboot ルールに追加します。
[root@idmclient ~]# ipa sudorule-add-user idm_user_reboot --users idm_user Rule name: idm_user_reboot Enabled: TRUE Users: idm_user Hosts: idmclient.idm.example.com Sudo Allow Commands: /usr/sbin/reboot ------------------------- Number of members added 1 -------------------------
オプション: idm_user_reboot ルールの有効性を定義します。
sudo
ルールが有効である時間を定義するには、--setattr sudonotbefore=DATE
オプションを指定してipa sudorule-mod sudo_rule_name
コマンドを使用します。DATE 値は、yyyymmddHHMMSSZ 形式に準拠し、明示的に指定される秒数である必要があります。たとえば、idm_user_reboot ルールの有効性の開始を 2025 12:34:00 年 12 月 31 に設定するには、次のコマンドを実行します。[root@idmclient ~]# ipa sudorule-mod idm_user_reboot --setattr sudonotbefore=20251231123400Z
sudo ルールが有効な停止時間を定義するには、
--setattr sudonotafter=DATE
オプションを使用します。たとえば、idm_user_reboot ルールの有効期間の最後を 2026 12:34:00 年 12 月 31 に設定するには、次のコマンドを実行します。[root@idmclient ~]# ipa sudorule-mod idm_user_reboot --setattr sudonotafter=20261231123400Z
サーバーからクライアントへの変更の伝播には数分かかる場合があります。
検証
- idmclient ホストに idm_user アカウントとしてログインします。
idm_user アカウントが実行可能な
sudo
ルールを表示します。[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user on idmclient: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User idm_user may run the following commands on idmclient: (root) /usr/sbin/reboot
sudo
を使用してマシンを再起動します。プロンプトが表示されたら、idm_user のパスワードを入力します。[idm_user@idmclient ~]$ sudo /usr/sbin/reboot [sudo] password for idm_user: