jumpserver/apps/accounts/automations/gather_account/host/posix/main.yml

62 lines
2.0 KiB
YAML
Raw Normal View History

2022-10-27 10:53:10 +00:00
- hosts: demo
gather_facts: no
tasks:
2024-10-30 08:10:46 +00:00
- name: Get users
2022-10-28 10:28:41 +00:00
ansible.builtin.shell:
cmd: >
2024-11-11 03:12:10 +00:00
getent passwd | awk -F: '$7 !~ /(false|nologin|true|sync)$/' | grep -v '^$' | awk -F":" '{ print $1 }'
2024-10-30 08:10:46 +00:00
register: users
2024-11-11 03:12:10 +00:00
- name: Gather posix account last login
2024-10-30 08:10:46 +00:00
ansible.builtin.shell: |
for user in {{ users.stdout_lines | join(" ") }}; do
2024-11-11 03:12:10 +00:00
last -i --time-format iso -n 1 ${user} | awk '{ print $1,$3,$4, $NF }' | head -1 | grep -v ^$
2024-10-30 08:10:46 +00:00
done
register: last_login
2024-11-11 03:12:10 +00:00
- name: Get user password change date and expiry
ansible.builtin.shell: |
for user in {{ users.stdout_lines | join(" ") }}; do
k=$(getent shadow $user | awk -F: '{ print $3, $5 }')
echo "$user:$k"
done
register: passwd_date
2024-10-30 08:10:46 +00:00
- name: Get user groups
ansible.builtin.shell: |
for user in {{ users.stdout_lines | join(" ") }}; do
2024-11-11 03:12:10 +00:00
echo "$(groups $user)" | sed 's@ : @:@g'
2024-10-30 08:10:46 +00:00
done
register: user_groups
2024-10-31 09:03:23 +00:00
- name: Get sudoers
2024-10-30 08:10:46 +00:00
ansible.builtin.shell: |
for user in {{ users.stdout_lines | join(" ") }}; do
echo "$user: $(grep "^$user " /etc/sudoers | tr '\n' ';' || echo '')"
done
register: user_sudo
- name: Get authorized keys
ansible.builtin.shell: |
for user in {{ users.stdout_lines | join(" ") }}; do
home=$(getent passwd $user | cut -d: -f6)
echo -n "$user:"
if [[ -f ${home}/.ssh/authorized_keys ]]; then
cat ${home}/.ssh/authorized_keys | tr '\n' ';'
fi
2024-11-11 03:12:10 +00:00
echo
2024-10-30 08:10:46 +00:00
done
register: user_authorized
2024-10-31 09:03:23 +00:00
- set_fact:
2024-11-12 08:00:41 +00:00
info:
users: "{{ users.stdout_lines }}"
last_login: "{{ last_login.stdout_lines }}"
user_groups: "{{ user_groups.stdout_lines }}"
user_sudo: "{{ user_sudo.stdout_lines }}"
user_authorized: "{{ user_authorized.stdout_lines }}"
passwd_date: "{{ passwd_date.stdout_lines }}"
2024-10-30 08:10:46 +00:00
2024-10-31 09:03:23 +00:00
- debug:
2024-11-12 08:00:41 +00:00
var: info