8.6. Création d'une règle sudo dans l'interface Web IdM qui exécute une commande en tant que compte de service sur un client IdM
Dans IdM, vous pouvez configurer une règle sudo
avec une règle RunAs alias pour exécuter une commande sudo
en tant qu'autre utilisateur ou groupe. Par exemple, vous pouvez avoir un client IdM qui héberge une application de base de données et vous devez exécuter des commandes en tant que compte de service local correspondant à cette application.
Utilisez cet exemple pour créer une règle sudo
dans l'IdM WebUI appelée run_third-party-app_report
pour permettre au compte idm_user
d'exécuter la commande /opt/third-party-app/bin/report
en tant que compte de service thirdpartyapp
sur l'hôte idmclient
.
Conditions préalables
- Vous êtes connecté en tant qu'administrateur IdM.
-
Vous avez créé un compte utilisateur pour
idm_user
dans IdM et déverrouillé le compte en créant un mot de passe pour l'utilisateur. Pour plus d'informations sur l'ajout d'un nouvel utilisateur IdM à l'aide de la ligne de commande, voir Ajouter des utilisateurs à l'aide de la ligne de commande. -
Aucun compte local
idm_user
n'est présent sur l'hôteidmclient
. L'utilisateuridm_user
n'est pas répertorié dans le fichier local/etc/passwd
. -
Vous avez une application personnalisée nommée
third-party-app
installée sur l'hôteidmclient
. -
La commande
report
pour l'applicationthird-party-app
est installée dans le répertoire/opt/third-party-app/bin/report
. -
Vous avez créé un compte de service local nommé
thirdpartyapp
pour exécuter les commandes de l'applicationthird-party-app
.
Procédure
Ajouter la commande
/opt/third-party-app/bin/report
à la base de données IdM des commandessudo
:-
Naviguez vers Policy
Sudo Sudo Commands. - Cliquez sur Add dans le coin supérieur droit pour ouvrir la boîte de dialogue Add sudo command.
Entrez la commande :
/opt/third-party-app/bin/report
.- Cliquez sur Add.
-
Naviguez vers Policy
Utilisez l'entrée de commande new
sudo
pour créer la nouvelle règlesudo
:-
Naviguez vers Policy
Sudo Sudo rules. - Cliquez sur Add dans le coin supérieur droit pour ouvrir la boîte de dialogue Add sudo rule.
Saisissez le nom de la règle
sudo
: run_third-party-app_report.- Cliquez sur Add and Edit.
Spécifiez l'utilisateur :
- Dans la section Who, cochez le bouton radio Specified Users and Groups.
- Dans la sous-section User category the rule applies to, cliquez sur Add pour ouvrir la boîte de dialogue Add users into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add users into sudo rule "run_third-party-app_report", dans la colonne Available, cochez la case idm_user et déplacez-la dans la colonne Prospective.
- Cliquez sur Add.
Spécifiez l'hôte :
- Dans la section Access this host, cochez le bouton radio Specified Hosts and Groups.
- Dans la sous-section Host category this rule applies to, cliquez sur Add pour ouvrir la boîte de dialogue Add hosts into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add hosts into sudo rule "run_third-party-app_report", dans la colonne Available, cochez la case idmclient.idm.example.com et déplacez-la dans la colonne Prospective.
- Cliquez sur Add.
Spécifiez les commandes :
- Dans la sous-section Command category the rule applies to de la section Run Commands, cochez le bouton radio Specified Commands and Groups.
- Dans la sous-section Sudo Allow Commands, cliquez sur Add pour ouvrir la boîte de dialogue Add allow sudo commands into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add allow sudo commands into sudo rule "run_third-party-app_report", dans la colonne Available, cochez la case
/opt/third-party-app/bin/report
et déplacez-la dans la colonne Prospective.- Cliquez sur Add pour revenir à la page run_third-party-app_report.
Spécifiez l'utilisateur RunAs :
- Dans la section As Whom, cochez le bouton radio Specified Users and Groups.
- Dans la sous-section RunAs Users, cliquez sur Add pour ouvrir la boîte de dialogue Add RunAs users into sudo rule "run_third-party-app_report".
Dans la boîte de dialogue Add RunAs users into sudo rule "run_third-party-app_report", saisissez le compte de service
thirdpartyapp
dans la case External et déplacez-le dans la colonne Prospective.- Cliquez sur Add pour revenir à la page run_third-party-app_report.
- Cliquez sur Save dans le coin supérieur gauche.
-
Naviguez vers Policy
La nouvelle règle est activée par défaut.
Figure 8.3. Détails de la règle sudo
La propagation des changements du serveur au client peut prendre quelques minutes.
Verification steps
-
Connectez-vous à l'hôte
idmclient
en tant que compteidm_user
. Testez la nouvelle règle sudo :
Affiche les règles
sudo
que le compteidm_user
est autorisé à appliquer.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user@idm.example.com 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@idm.example.com may run the following commands on idmclient: (thirdpartyapp) /opt/third-party-app/bin/report
Exécutez la commande
report
en tant que compte de servicethirdpartyapp
.[idm_user@idmclient ~]$ sudo -u thirdpartyapp /opt/third-party-app/bin/report [sudo] password for idm_user@idm.example.com: Executing report... Report successful.