rbrightling.shadow_utils

阴影工具

测试 Ansible 角色 Ansible Galaxy

管理用于在系统上管理用户和组账户的阴影工具包配置。

在默认配置中已尽力应用最佳安全实践;然而,仍需始终确保足够的审查,因为这并不能保证安全。

要求

Ansible 2.8+

支持的操作系统

  • Debian 10
  • CentOS 8

角色变量

# useradd 配置选项
# #######################

# 使用 useradd 创建的默认用户 shell
shadow_utils_shell: "{{ shadow_utils__shell }}"

# 用户的 GID (100=users),如果未指定其他组则使用此项。 
shadow_utils_group: 100

# 密码过期后账户被永久禁用的天数。-1 以禁用。
shadow_utils_inactive: 60

# 默认过期日期
shadow_utils_expire: null

# 默认的主目录
shadow_utils_home: "/home"

# 复制到新用户主目录的骨架结构。
shadow_utils_skel: "/etc/skel"

# 默认情况下为新用户创建邮件存储
shadow_utils_create_mail_spool: false

# Login.defs 配置选项
# #########################

# 邮件存储目录。这在修改或删除相应用户账户时需要操作邮箱。
shadow_utils_mail_dir: "{{ shadow_utils__mail_dir }}"

# 定义用户邮件存储文件相对其主目录的位置
shadow_utils_mail_file: null

# 启用记录登录失败信息并显示 /var/log/faillog。
# 此选项与 pam_tally PAM 模块冲突。
shadow_utils_faillog_enab: true

# 登录失败记录时显示未知用户名。
shadow_utils_log_unkfail_enab: true
 
# 启用成功登录的记录。
shadow_utils_log_ok_logins: false

# 启用 su 活动的“syslog”记录 - 除了 sulog 文件记录。
shadow_utils_syslog_su_enab: true

# 启用 sg 活动的“syslog”记录。
shadow_utils_syslog_sg_enab: true
 
# 如果定义,所有 su 活动将记录到此文件。
shadow_utils_sulog_file: '/var/log/su.log'

shadow_utils_ftmp_file: '/var/log/btmp'

# 如果定义,将 tty 行映射到 TERM 环境参数的文件
shadow_utils_ttytype_file: null

# 如果定义,运行 "su -" 时显示的命令名。
shadow_utils_su_name: 'su'

# 如果定义,抑制登录消息。如果是完整路径,则在指定文件中的用户名被启用静音;否则,
# 如果文件存在于用户目录中,则启用静音。
shadow_utils_hushlogin_file: '.hushlogin'

# 设置超级用户登录时的 PATH 变量
shadow_utils_env_supath: 
    - '/usr/local/sbin'
    - '/usr/local/bin'
    - '/usr/sbin'
    - '/usr/bin'
    - '/sbin'
    - '/bin'

# 设置普通用户登录时的 PATH 变量
shadow_utils_env_path: 
    - '/usr/local/bin'
    - '/usr/bin'
    - '/bin'
    - '/usr/local/games'
    - '/usr/games'

# 终端权限。
shadow_utils_ttygroup: 'tty'
shadow_utils_ttyperm: '0600'

# 终端删除字符 (010 = 回退, 0177 = DEL)
shadow_utils_erasechar: '0177'

# 终端 KILL 字符 (025 = CTRL/U)
shadow_utils_killchar: '025'

# 文件模式创建掩码初始化为此值。
shadow_utils_umask: '077'
# - 022: 文件 - 640 (rw-rw----), 目录 - 750 (rwxrwx---)
# - 027: 文件 - 640 (rw-r-----), 目录 - 750 (rwxr-x---)
# - 077: 文件 - 640 (rw-------), 目录 - 750 (rwx------)

# 密码可使用的最长天数。如果密码超过此天数,将强制更改密码。
shadow_utils_pass_max_days: 366

# 密码更改之间允许的最小天数。任何尝试过早更改密码的请求将被拒绝。
shadow_utils_pass_min_days: 1

# 密码过期前发出警告的天数。
shadow_utils_pass_warn_age: 31

# 用于创建普通用户的用户 ID 范围
shadow_utils_uid_min: 1000
shadow_utils_uid_max: 60000

# 用于创建系统用户的用户 ID 范围
shadow_utils_sys_uid_min: 201
shadow_utils_sys_uid_max: 999

# 用于创建普通组的组 ID 范围
shadow_utils_gid_min: 1000
shadow_utils_gid_max: 60000

# 用于创建系统组的组 ID 范围
shadow_utils_sys_gid_min: 201
shadow_utils_sys_gid_max: 999

# 错误密码情况下的最大登录重试次数。
# 这很可能会被 PAM 重写,但可以作为安全的后备。
shadow_utils_login_retries: 5

# 登录的最大时间(秒)。
shadow_utils_login_timeout: 60

# 指定用户可通过 chfn 更改的 gecos 字段。 
# f - 全名, r - 房间号, w - 工作电话, h - 家庭电话
shadow_utils_chfn_restrict: 'rwh'

# 如果无法切换到主目录,则允许用户登录
shadow_utils_default_home: false

# 默认情况下为新用户创建主目录
shadow_utils_create_home: true

# 如果定义,删除用户时将运行此命令
shadow_utils_userdel_cmd: null

# 为新用户创建同名的默认组,并在用户被删除时,如果组为空则移除用户组。 
shadow_utils_usergroups_enab: true

# 默认用于加密密码的加密算法
shadow_utils_encrypt_method: 'SHA512'

依赖

示例剧本

- hosts: servers
  tasks:
    - name: "包含 shadow_utils"
      include_role:
        name: "shadow_utils"

许可证

LGPLv3

作者信息

关于项目

Manage the shadow utils configuration on a system.

安装
ansible-galaxy install rbrightling.shadow_utils
许可证
lgpl-3.0
下载
320
拥有者
DevOps and general computer tinkerer.