- group 'sftpusers' (GID 200 or next free), sshd drop-in
/etc/ssh/sshd_config.d/90-sshd-SFTP.conf (Match Group, ChrootDirectory %h,
ForceCommand internal-sftp), PasswordAuthentication via
'sftp_password_authentication'
- new sftp users (UID 201 or next free) with root owned chroot home,
upload dir and root owned authorized_keys (always created)
- existing users (e.g. www-data, suexec users) can be added to the group;
chroot requirements of their home are checked, not changed
- passwords: update_password defaults to 'always', password of users with
shell access is never changed
- controlled by 'chrooted_sftpd_present' (default: false), tag 'sftpd'
- add empty sftpd section to all host_vars *-common.yml
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Updated all tasks to use fully qualified module names (e.g., ansible.builtin.shell, ansible.builtin.copy) for clarity and to avoid ambiguity.
- Replaced deprecated 'yum' module with 'dnf' for package management on RedHat-based systems.
- Improved formatting and consistency in task definitions, including the use of double quotes for strings and consistent indentation.
- Removed unnecessary comments and whitespace to enhance readability.
- Ensured that conditions and loops are consistently formatted across all tasks.