From d629982afb59f59ec9ffe053ca666b8487d3eae0 Mon Sep 17 00:00:00 2001 From: jonnybravo Date: Tue, 3 Feb 2026 12:26:02 +0100 Subject: [PATCH] Fix: Robusteres Filtern von Benutzer-Home-Verzeichnissen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - In 'roles/tmux/tasks/main.yml' wurde der Task zur Erstellung der 'user_home_dirs'-Liste durch eine robustere Methode ersetzt. Diese verwendet Jinja2-Filter (, , ), um Benutzer anhand ihrer Shell, des Benutzernamens ('root' ausschließen), der Definition des Home-Verzeichnisses sowie des Ausschlusses von leeren oder nur aus '/' bestehenden Home-Verzeichnissen zu filtern. - Die redundanten 'when'-Bedingungen im 'Tmux config block' wurden entfernt, da die Filterung nun zentral bei der Erstellung der Liste erfolgt. Dies sollte das Problem beheben, dass gültige Benutzer übersprungen werden und gleichzeitig die Robustheit gegen ungültige Home-Verzeichnisse erhöhen. --- roles/tmux/tasks/main.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/roles/tmux/tasks/main.yml b/roles/tmux/tasks/main.yml index 5bf38c6..031932e 100644 --- a/roles/tmux/tasks/main.yml +++ b/roles/tmux/tasks/main.yml @@ -12,16 +12,17 @@ database: passwd register: all_users -- name: Create a list of home directories for bash and zsh users +- name: Create a list of home directories for bash, zsh and fish users set_fact: - user_home_dirs: "{{ user_home_dirs | default([]) + [item.value[4]] }}" - loop: "{{ all_users.ansible_facts.getent_passwd | dict2items }}" - when: - - item.value[5] in ['/bin/bash', '/bin/zsh', '/usr/bin/bash', '/usr/bin/zsh', '/usr/bin/fish'] - - item.value[0] != 'root' - - item.value[4] is defined - - item.value[4] != '/' - - item.value[4] != '' + user_home_dirs: >- + {{ all_users.ansible_facts.getent_passwd.values() + | selectattr(5, 'in', ['/bin/bash', '/bin/zsh', '/usr/bin/bash', '/usr/bin/fish']) + | rejectattr(0, 'eq', 'root') + | selectattr(4, 'defined') + | rejectattr(4, 'eq', '') + | rejectattr(4, 'eq', '/') + | map(attribute=4) + | list }} - name: Display the list of collected home directories ansible.builtin.debug: @@ -31,8 +32,7 @@ block: - name: Tmux config Play include_tasks: tmux_config.yml - loop: "{{ user_home_dirs }}" - when: item | basename != 'root' and item != '/' and item != '' + loop: "{{ user_home_dirs }}" # ======================================================================== # EXAMPLE: Here is how you can reuse the 'user_home_dirs' list