告别手动操作!用Ansible user模块高效管理 Linux账户

admin 2025年2月7日00:16:04评论10 views字数 2972阅读9分54秒阅读模式

告别手动操作!用Ansible user模块高效管理 Linux账户

大家好!我是一个热衷于分享IT技术的up主。在这个公众号里,我将为大家带来最新、最实用的技术干货,从编程语言到前沿科技,从软件开发到网络安全。希望通过我的分享,能够帮助更多的小伙伴提升技术水平,共同成长!欢迎关注,一起探索科技的魅力吧!

在企业运维环境中,服务器的用户管理是一项基础但非常重要的任务。比如,当有新员工加入时,我们需要在多台服务器上为他们创建账户并分配合适的权限。而当员工离职或岗位发生变化时,我们也需要迅速禁用或删除他们的账户,以避免潜在的安全风险。

告别手动操作!用Ansible user模块高效管理 Linux账户

如果采用手动方式来完成这些任务,就需要在每台服务器上逐一执行一系列命令,比如 useraddpasswd 和 chage 等,这不仅耗时费力,还容易出现错误。幸运的是,Ansible提供了一个非常方便的 user 模块,可以帮助我们高效地进行批量用户管理,从而确保操作的安全性和一致性。

user模块的核心功能

要了解user模块的详细用法,我们可以使用ansible-doc命令。只需运行以下命令即可查看相关信息:

ansible-doc -s user

成功执行上述命令后,会展示如下图的结果:

告别手动操作!用Ansible user模块高效管理 Linux账户

user模块提供了许多实用的功能,主要包括以下几点:

  • 创建或删除用户

  • 设置密码

  • 指定用户的UIDGID

  • 指定用户所属组

  • 创建home目录

  • 设定 Shell

  • 设定SSH公钥认证

常用参数说明:

参数
作用
name
指定用户名
state present(创建用户)或 absent(删除用户)
password
用户密码(需加密)
uid
指定用户UID
group
指定用户所属组
groups
指定用户附加的组
home
指定 home目录路径
shell
指定默认Shell,如 /bin/bash
create_home
是否创建 home目录(默认yes
remove absent时是否删除 home目录
expires
指定密码过期时间(时间戳格式)

⚓实战案例分析

📝案例 1:批量创建开发团队账户

需求:为3名新入职开发人员创建账户,要求:

  • 创建主目录/home/dev_username

  • 加入dockergit附加组

  • 禁止SSH密码登录

  • 设置初始密码

-name:Createdeveloperaccountshosts:dev_serversbecome:yesvars:developers:-{name:'alice',uid:2001}-{name:'bob',uid:2002}-{name:'charlie',uid:2003}tasks:-name:Createdeveloperusersansible.builtin.user:name:"{{ item.name }}"uid:"{{ item.uid }}"groups:docker,gitappend:yesshell:/bin/bashpassword:"$6$rounds=656000$SAlt1234$XH6X8L8Dz4tdj.7WZ2TvWUDO2w/lk5sABC1234ABCDefgHIJKLmnopqrSTUVWXYZ"generate_ssh_key:yesssh_key_bits:4096create_home:yesloop:"{{ developers }}"

关键点说明:

  1. 使用loop实现批量创建

  2. password参数使用pythoncrypt生成的哈希密文

  3. 自动生成4096RSA密钥对

  4. 保持默认主组,同时附加到dockergit

通过执行如下命令,即可批量创建用户:

ansible-playbook Create_developer_accounts.yml

创建成功后可以看到如下图的结果:

告别手动操作!用Ansible user模块高效管理 Linux账户

📝案例 2:为运维账户配置Sudo权限

创建opsadmin账户并授予免密sudo权限

-name:Configureopsadminhosts:dev_serversbecome:yestasks:-name:Createopsuseransible.builtin.user:name:opsadmingroups:wheelshell:/bin/bashcomment:"Operations Administrator"-name:Configurepasswordlesssudoansible.builtin.lineinfile:path:/etc/sudoersline:'opsadmin ALL=(ALL) NOPASSWD:ALL'validate:'visudo -cf %s'

validate: 'visudo -cf %s'

  • 在修改前使用 visudo -cf /etc/sudoers 进行语法检查。

  • 防止 sudoers 文件写错,避免系统无法使用sudo

 ansible-playbook  Configure_ops_admin.yml

成功执行上述命令后,您将会看到如下图所示的结果:

告别手动操作!用Ansible user模块高效管理 Linux账户

📝案例3:安全删除离职用户

需求:安全移除已离职员工账户,删除用户但保留主目录。

-name:Removedeprecatedusershosts:dev_serversbecome:yesvars:departed_users:['alice','bob']tasks:-name:Removeuseraccountsansible.builtin.user:name:"{{ item }}"state:absentremove:no# 不删除主目录loop:"{{ departed_users }}"

成功执行下面的命令后,会把定义的用户删除,但是会保留删除用户的家目录,如下图所示:

ansible-playbookRemove_deprecated_users.yml
告别手动操作!用Ansible user模块高效管理 Linux账户

📝案例 4:禁用用户

需求:禁用 charlie账户,但不删除,确保其 home 目录仍然保留。

-name:禁用用户hosts:dev_serversbecome:yestasks:-name:锁定charlie账户ansible.builtin.user:name:charliepassword_lock:yes

成功执行如下命令会输入如下图的结果:

ansible-playbook lock_charlie.yml
告别手动操作!用Ansible user模块高效管理 Linux账户

总结

Ansibleuser模块为 Linux 服务器的用户管理提供了强大的自动化能力,可以大幅提升运维效率并减少人为失误。本文通过典型场景展示了以下关键功能:

  • 创建批量用户并分配权限

  • 为运维账号配置Sudo权限

  • 禁用用户

  • 删除用户并保留 home目录

通过这些案例,相信你已经掌握了 user 模块的基本用法,并能在实际工作中灵活应用。希望这篇教程能帮助你更轻松地管理服务器用户,提高运维自动化能力! 🚀

往期 · 推荐

登录即见:打造服务器欢迎信息,提升用户体验

自动化压缩新姿势!教你用Ansible Archive模块高效管理文件

提升运维效率:Ansible systemd 模块操作技巧,让你告别繁琐命令行!

Ansible fetch模块详解:轻松从远程主机抓取文件

告别手动编辑:如何用Python快速创建Ansible hosts文件?

告别手动操作!用Ansible user模块高效管理 Linux账户

RECRUIT

关注我们

博客 | didiplus.kwpmp.cn

原文始发于微信公众号(攻城狮成长日记):告别手动操作!用Ansible user模块高效管理 Linux账户

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月7日00:16:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   告别手动操作!用Ansible user模块高效管理 Linux账户https://cn-sec.com/archives/3705114.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息