6.3. Configurer le shell par défaut pour les utilisateurs IdM à l'aide d'un playbook Ansible

L'interpréteur de commandes est un programme qui accepte et interprète les commandes. Plusieurs interpréteurs de commandes sont disponibles dans Red Hat Enterprise Linux (RHEL), tels que bash, sh, ksh, zsh, fish, et d'autres. Bash l'interpréteur de commandes, ou /bin/bash, est un interpréteur de commandes populaire sur la plupart des systèmes Linux, et c'est normalement l'interpréteur de commandes par défaut pour les comptes d'utilisateurs sur RHEL.

La procédure suivante décrit comment utiliser un playbook Ansible pour configurer sh, un shell alternatif, comme shell par défaut pour les utilisateurs d'IdM.

Conditions préalables

  • Vous connaissez le mot de passe de l'administrateur IdM.
  • Vous avez configuré votre nœud de contrôle Ansible pour qu'il réponde aux exigences suivantes :

    • Vous utilisez la version 2.8 ou ultérieure d'Ansible.
    • Vous avez installé le paquetage ansible-freeipa sur le contrôleur Ansible.
    • L'exemple suppose que dans le répertoire ~/MyPlaybooks/ vous avez créé un fichier d'inventaire Ansible avec le nom de domaine complet (FQDN) du serveur IdM.
    • L'exemple suppose que le coffre-fort secret.yml Ansible stocke votre ipaadmin_password.

Procédure

  1. Facultatif : Utilisez le playbook Ansible retrieve-config.yml pour identifier le shell actuel des utilisateurs IdM. Voir Récupération de la configuration IdM à l'aide d'un playbook Ansible pour plus de détails.
  2. Créez un fichier d'inventaire, par exemple inventory.file, et définissez-y ipaserver:

    [ipaserver]
    server.idm.example.com
  3. Ouvrez le fichier /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.yml Ansible playbook pour l'éditer :

    ---
    - name: Playbook to ensure some config options are set
      hosts: ipaserver
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
    
      tasks:
      # Set defaultlogin and maxusername
      - ipaconfig:
          ipaadmin_password: "{{ ipaadmin_password }}"
          defaultshell: /bin/bash
          maxusername: 64
  4. Adaptez le fichier en modifiant les éléments suivants :

    • Le mot de passe de l'administrateur IdM défini par la variable ipaadmin_password.
    • Le shell par défaut des utilisateurs de l'IdM est défini par la variable defaultshell dans /bin/sh.
  5. Enregistrer le fichier.
  6. Exécutez le playbook Ansible. Spécifiez le fichier du livre de jeu, le fichier contenant le mot de passe protégeant le fichier secret.yml et le fichier d'inventaire :

    $ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.yml

Verification steps

Vous pouvez vérifier que le shell de l'utilisateur par défaut a été modifié en démarrant une nouvelle session dans IdM :

  1. Connectez-vous à ipaserver en tant qu'administrateur IdM :

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. Affiche l'interpréteur de commandes actuel :

    [admin@server /]$ echo "$SHELL"
    /bin/sh

    L'utilisateur connecté utilise l'interpréteur de commandes sh.