36.3. Utilização de um livro de jogo possível para garantir o acesso sudo para um usuário IdM em um cliente IdM
No Gerenciamento de Identidade (IdM), você pode garantir que sudo
tenha acesso a um comando específico concedido a uma conta de usuário IdM em um host IdM específico.
Complete este procedimento para garantir a existência de uma regra chamada idm_user_reboot no site sudo
. A regra concede a idm_user a permissão para executar o comando /usr/sbin/reboot
na máquina idmclient.
Pré-requisitos
- Você instalou o pacote ansible-freeipa no controlador Ansible.
- Você sabe a senha do administrador da IdM.
- Você garantiu a presença de uma conta de usuário para idm_user na IdM e desbloqueou a conta criando uma senha para o usuário. Para detalhes sobre como adicionar um novo usuário do IdM usando a interface de linha de comando, veja Adicionar usuários usando a linha de comando.
-
Não existe uma conta idm_user local em idmclient. O usuário idm_user não está listado no arquivo
/etc/passwd
em idmclient.
Procedimento
Criar um arquivo de inventário, por exemplo
inventory.file
, e definiripaservers
no mesmo:[ipaservers] server.idm.example.com
Adicione um ou mais comandos em
sudo
:Criar um livro de exercícios
ensure-reboot-sudocmd-is-present.yml
que garanta a presença do comando/usr/sbin/reboot
no banco de dados do IdM desudo
comandos. Para simplificar esta etapa, você pode copiar e modificar o exemplo no arquivo/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
Execute o livro de brincadeiras:
$ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-reboot-sudocmd-is-present.yml
Criar uma regra
sudo
que faça referência aos comandos:Criar um livro de jogo
ensure-sudorule-for-idmuser-on-idmclient-is-present.yml
que utiliza o comandosudo
para garantir a presença de uma regra de sudo. A regra sudo permite que idm_user reinicie a máquina idmclient. Para simplificar esta etapa, você pode copiar e modificar o exemplo no arquivo/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
Execute o livro de brincadeiras:
$ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-sudorule-for-idmuser-on-idmclient-is-present.yml
Etapas de verificação
Teste que a regra sudo
cuja presença você garantiu no servidor IdM funciona em idmclient, verificando que idm_user pode reiniciar idmclient usando sudo
. Note que pode levar alguns minutos para que as mudanças feitas no servidor tenham efeito sobre o cliente.
- Acesse idmclient como idm_user.
Reinicie a máquina usando
sudo
. Digite a senha para idm_user quando solicitado:$ sudo /usr/sbin/reboot [sudo] password for idm_user:
Se sudo
estiver configurado corretamente, a máquina é reinicializada.
Materiais adicionais
-
Para mais detalhes sobre como aplicar os comandos
sudo
, grupos de comando e regras no IdM usando um livro de jogo possível, incluindo as descrições das variáveis do livro de jogo, veja os arquivos README-sudocmd.md, README-sudocmdgroup.md e README-sudorule.md Markdown disponíveis no diretório/usr/share/doc/ansible-freeipa/
.