type
status
date
slug
summary
tags
category
icon
password
书籍
自动执行Linux管理任务-2 管理用户和身份验证
- 管理Linux用户和组,配置SSH,以及修改受管主机上的Sudo配置。
1. 用户管理模块
Ansible
ansible.builtin.user
模块用于在受管主机上创建、配置和删除用户帐户。可以进行的操作包括:- 创建或删除用户。
- 设置用户主目录。
- 管理密码(需要提供哈希密码)。
- 将用户分配到补充组。
示例:
常用参数:
参数 | 注释 |
comment | 设置用户帐户的描述。 |
group | 设置用户的主要组。 |
groups | 设置用户的补充组列表。 |
home | 设置用户主目录的位置。 |
createhome | 设置为 true 以创建用户主目录。 |
system | 设置为 true 将用户设为系统帐户。 |
uid | 设置用户的UID编号。 |
state | present (创建用户)或absent (删除用户)。 |
2. 生成SSH密钥
使用
generate_ssh_key
参数生成SSH密钥:3. 组管理模块
Ansible
ansible.builtin.group
模块可用于添加、删除和修改受管主机上的组。示例:
常用参数:
参数 | 注释 |
gid | 设置组的GID编号(自动选择编号)。 |
local | 强制使用本地命令替代项。 |
name | 要管理的组的名称。 |
state | 确定组的状态( present 或absent )。 |
system | 设置为 true 将组设为系统组。 |
4. 已知主机管理模块
Ansible
ansible.builtin.known_hosts
模块用于管理受管主机上的SSH主机密钥,确保SSH连接的真实性。示例:
5. 授权密钥管理模块
Ansible
ansible.posix.authorized_key
模块用于管理受管主机上用户帐户的SSH授权密钥。示例:
6. Sudo访问权限配置
在红帽企业Linux中,可以为用户或组配置Sudo访问权限,使其能够运行sudo命令而无需密码提示。可以使用
ansible.builtin.lineinfile
模块修改/etc/sudoers
文件,添加以下行:示例:
注意: 使用
validate
参数可以确保sudoers
文件在修改后不会有语法错误。练习:
实验手册:Ansible自动化管理用户和SSH配置
实验目的
- 使用Ansible自动化创建多个本地用户。
- 将控制节点的公钥分发到目标服务器,为每个用户配置免密登录。
- 修改sudo权限配置,使用户可以无密码使用sudo。
- 禁用root用户通过SSH登录。
1. 启动实验环境
2. 切换到项目目录
进入实验项目的工作目录:
3. 定义用户变量文件
创建并编辑
vars/users_vars.yml
文件,定义要创建的用户信息。说明:每个用户都属于
webadmin
组。4. 创建主Playbook文件
编辑主Playbook文件
users.yml
,定义在目标服务器上执行的任务。5. 运行Playbook
执行Playbook来创建用户和用户组。
6. 追加任务:自动添加公钥
在
users.yml
文件的 tasks
部分添加以下任务,将控制节点的公钥分发给每个用户,实现免密登录。提示:手动将控制节点的公钥文件复制到目标服务器的
authorized_keys
文件中,确保Ansible可以自动管理。7. 添加sudo权限和禁用root登录
添加无密码sudo权限
在
tasks
中继续添加任务,修改 sudo
配置文件,使 webadmin
组用户可以无密码使用 sudo
。禁用root用户通过SSH登录
8. 添加处理程序(Handler)
在Playbook末尾添加处理程序,用于在更改SSH配置后重启
sshd
服务。可以将
handler
部分添加到Playbook文件的前面,但最好还是放在Playbook的末尾,因为这符合惯例,方便维护和阅读。这样结构上更清晰,也容易让人一眼看出哪些任务会触发处理程序。不过Ansible不限制
handler
的位置,因此放在文件的任何位置都可以正常工作。9. 运行Playbook
重新运行Playbook,应用所有更改:
10. 验证配置
- 使用
user1
通过SSH登录服务器,检查免密登录和sudo权限。
- 测试禁用
root
登录是否生效:
11. 完成实验
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/12fd7ae8-88e2-803b-80d6-f1a5ee30a10a
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章