Проблема с авторизованными ключами с ansible - PullRequest
1 голос
/ 11 апреля 2020

Я нахожусь в процессе создания узлов в моем мозгу относительно заботы о правах на .ssh/authorized_keys.

У меня есть сценарий ansible, который идеально подходит для создания моих пользователей на моих серверах, и я просто хочу изменить права /home/user, /home/user/.ssh и, наконец, /home/user.ssh/authorized_keys, потому что они не являются правильными по умолчанию. Я не могу найти, где проблема.

---
- hosts: all
  become: true
  tasks:
  - name: Creation groupe dev
    group:
      name: dev
      state: present

  - name: Creation des utilisateurs
    user:
      name: "{{ item.path }}"
      group: dev
      state: present
      password: "{{ lookup('password', '/dev/null') |password_hash('sha512') }}"
      update_password: on_create
    with_filetree: xx_pub_keys/

  - name: copie des clés SSH
    authorized_key:
      user: "{{ item.path }}"
      key: "{{ lookup('file', 'xx_pub_keys/' + item.path ) }}"
      state: present
    with_filetree: xx_pub_keys/

  - name: droits repertoires
    command:
      chmod go-w /home/{{ user.path }} && \
      chmod 700 /home/{{ user.path }} && \
      chmod 644 /home/{{ user.path }}/.ssh/authorized_keys

  - name: "Suppression des users eventuels"
    user:
      name: "{{ item.path }}"
      state: absent
      remove: true
    with_filetree: xx_pub_remove/

  - name: Allow admin users to sudo without a password
    lineinfile:
      dest: "/etc/sudoers"
      state: "present"
      regexp: "^%admin"
      line: "%admin ALL=(ALL) NOPASSWD: ALL"

  - name: restart sshd
    service: name=ssh state=restarted ...

Поэтому я попытался в разделе "права на каталог" user.path, item.path, короткий элемент с with_items ... Понятия не имею ...

Короче, я за любую поправку.

Заранее спасибо

1 Ответ

0 голосов
/ 11 апреля 2020

если я смотрю на задачу

  - name: droits repertoires
    command:
      chmod go-w /home/{{ user.path }} && \
      chmod 700 /home/{{ user.path }} && \
      chmod 644 /home/{{ user.path }}/.ssh/authorized_keys

, то нет смысла удалять права на запись из группы «Другое», если позже вы установите абсолютные права равными 700. Другими словами, первая команда излишня.

и затем всегда отдавайте предпочтение модулю вместо команды, если для такого рода задач существует модуль. Итак, здесь вы используете файловый модуль 2 раза вместо командного модуля:

  - name: "check or change /home/{{ user.path }}"
    file:
      path: /home/{{ user.path }}
      state: touch
      mode: '700'
  - name: "check or change /home/{{ user.path }}/.ssh/authorized_keys"
    file:
      path: /home/{{ user.path }}/.ssh/authorized_keys
      state: touch
      mode: '644'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...