Rechercher

8.2. Accorder un accès sudo à un utilisateur IdM sur un client IdM à l'aide de la CLI

download PDF

Dans la gestion des identités (IdM), vous pouvez accorder l'accès sudo pour une commande spécifique à un compte d'utilisateur IdM sur un hôte IdM spécifique. Commencez par ajouter une commande sudo, puis créez une règle sudo pour une ou plusieurs commandes.

Par exemple, suivez cette procédure pour créer la règle idm_user_reboot sudo afin d'autoriser le compte idm_user à exécuter la commande /usr/sbin/reboot sur la machine 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ôte idmclient. L'utilisateur idm_user n'est pas répertorié dans le fichier local /etc/passwd.

Procédure

  1. Récupérer un ticket Kerberos en tant qu'IdM admin.

    [root@idmclient ~]# kinit admin
  2. Ajouter la commande /usr/sbin/reboot à la base de données IdM des commandes sudo:

    [root@idmclient ~]# ipa sudocmd-add /usr/sbin/reboot
    -------------------------------------
    Added Sudo Command "/usr/sbin/reboot"
    -------------------------------------
      Sudo Command: /usr/sbin/reboot
  3. Créez une règle sudo nommée idm_user_reboot:

    [root@idmclient ~]# ipa sudorule-add idm_user_reboot
    ---------------------------------
    Added Sudo Rule "idm_user_reboot"
    ---------------------------------
      Rule name: idm_user_reboot
      Enabled: TRUE
  4. Ajoutez la commande /usr/sbin/reboot à la règle 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
    -------------------------
  5. Appliquer la règle idm_user_reboot à l'hôte 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
    -------------------------
  6. Ajoutez le compte idm_user à la règle 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
    -------------------------
  7. Il est possible de définir la validité de la règle idm_user_reboot:

    1. Pour définir l'heure à laquelle une règle sudo commence à être valide, utilisez la commande ipa sudorule-mod sudo_rule_name avec l'option --setattr sudonotbefore=DATE option. La valeur de DATE doit suivre le format de yyyymmddHHMMSSZ, en spécifiant explicitement les secondes. Par exemple, pour définir le début de la validité de la règle idm_user_reboot au 31 décembre 2025 12:34:00, entrez :

      [root@idmclient ~]# ipa sudorule-mod idm_user_reboot --setattr sudonotbefore=20251231123400Z
    2. Pour définir l'heure à laquelle une règle sudo cesse d'être valide, utilisez l'option --setattr sudonotafter=DATE. Par exemple, pour fixer la fin de la validité de la règle idm_user_reboot au 31 décembre 2026 12:34:00, entrez :

      [root@idmclient ~]# ipa sudorule-mod idm_user_reboot --setattr sudonotafter=20261231123400Z
Note

La propagation des changements du serveur au client peut prendre quelques minutes.

Verification steps

  1. Connectez-vous à l'hôte idmclient en tant que compte idm_user.
  2. Affiche les règles sudo que le compte idm_user est autorisé à appliquer.

    [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
  3. Redémarrez la machine en utilisant sudo. Saisissez le mot de passe de idm_user lorsque vous y êtes invité :

    [idm_user@idmclient ~]$ sudo /usr/sbin/reboot
    [sudo] password for idm_user:
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.