Red Hat Training
A Red Hat training course is available for RHEL 8
36.3. Uso de un libro de jugadas de Ansible para garantizar el acceso sudo de un usuario de IdM en un cliente de IdM
En la gestión de identidades (IdM), puede asegurarse de que sudo
conceda el acceso a un comando específico a una cuenta de usuario IdM en un host IdM específico.
Completa este procedimiento para asegurarte de que existe una regla sudo
llamada idm_user_reboot. La regla concede a idm_user el permiso para ejecutar el comando /usr/sbin/reboot
en la máquina idmclient.
Requisitos previos
- Ha instalado el paquete ansible-freeipa en el controlador de Ansible.
- Conoce la contraseña del administrador de IdM.
- Ha asegurado la presencia de una cuenta de usuario para idm_user en IdM y ha desbloqueado la cuenta creando una contraseña para el usuario. Para obtener más información sobre cómo añadir un nuevo usuario de IdM mediante la interfaz de línea de comandos, consulte Añadir usuarios mediante la línea de comandos.
-
No existe una cuenta local idm_user en idmclient. El usuario idm_user no aparece en el archivo
/etc/passwd
en idmclient.
Procedimiento
Cree un archivo de inventario, por ejemplo
inventory.file
, y defina en élipaservers
:[ipaservers] server.idm.example.com
Añade uno o más comandos de
sudo
:Cree un playbook de Ansible
ensure-reboot-sudocmd-is-present.yml
que garantice la presencia del comando/usr/sbin/reboot
en la base de datos de IdM de los comandossudo
. Para simplificar este paso, puede copiar y modificar el ejemplo en el archivo/usr/share/doc/ansible-freeipa/playbooks/sudocmd/ensure-sudocmd-is-present.yml
:--- - name: Playbook to manage sudo command hosts: ipaserver become: true tasks: # Ensure sudo command is present - ipasudocmd: ipaadmin_password: MySecret123 name: /usr/sbin/reboot state: present
Ejecuta el libro de jugadas:
$ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-reboot-sudocmd-is-present.yml
Cree una regla
sudo
que haga referencia a los comandos:Cree un playbook de Ansible
ensure-sudorule-for-idmuser-on-idmclient-is-present.yml
que utilice la entrada del comandosudo
para asegurar la presencia de una regla sudo. La regla sudo permite a idm_user reiniciar la máquina idmclient. Para simplificar este paso, puede copiar y modificar el ejemplo en el archivo/usr/share/doc/ansible-freeipa/playbooks/sudorule/ensure-sudorule-is-present.yml
:--- - name: Tests hosts: ipaserver become: true tasks: # Ensure a sudorule is present granting idm_user the permission to run /usr/sbin/reboot on idmclient - ipasudorule: ipaadmin_password: MySecret123 name: idm_user_reboot description: A test sudo rule. allow_sudocmd: /usr/sbin/reboot host: idmclient.idm.example.com user: idm_user state: present
Ejecuta el libro de jugadas:
$ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-sudorule-for-idmuser-on-idmclient-is-present.yml
Pasos de verificación
Compruebe que la regla sudo
cuya presencia ha asegurado en el servidor IdM funciona en idmclient verificando que idm_user puede reiniciar idmclient utilizando sudo
. Tenga en cuenta que los cambios realizados en el servidor pueden tardar unos minutos en surtir efecto en el cliente.
- Inicie sesión en idmclient como idm_user.
Reinicie la máquina utilizando
sudo
. Introduzca la contraseña de idm_user cuando se le solicite:$ sudo /usr/sbin/reboot [sudo] password for idm_user:
Si sudo
está configurado correctamente, la máquina se reinicia.
Materiales adicionales
-
Para obtener más detalles sobre cómo aplicar los comandos, grupos de comandos y reglas de
sudo
en IdM utilizando un libro de jugadas de Ansible, incluidas las descripciones de las variables del libro de jugadas, consulte los archivos Markdown README-sudocmd.md, README-sudocmdgroup.md y README-sudorule.md disponibles en el directorio/usr/share/doc/ansible-freeipa/
.