命令介绍
Linux系统中的用户和用户组管理是系统管理员日常工作的重要组成部分。通过对用户和用户组的合理管理,可以有效地控制系统资源的访问权限,保障系统安全。本文将详细介绍Linux系统中常用的用户和用户组管理命令,并通过实例进行说明。
1. 用户管理命令
1.1 创建用户
- 命令:
useradd
- 语法:
useradd [选项] 用户名
- 常用选项:
# 创建用户user1,并设置家目录为/home/user1,主组为users
useradd -m -d /home/user1 -g users user1
- 示例:
-m
: 自动创建用户的家目录-d
: 指定用户的家目录-g
: 指定用户的主组-G
: 指定用户附加组-s
: 指定用户的登录shell-u
: 指定用户的UID
1.2 修改用户信息
- 命令:
usermod
- 语法:
usermod [选项] 用户名
- 常用选项:
- 示例:
# 将用户user1的用户名改为user2
usermod -l user2 user1
-u
: 修改用户的UID-g
: 修改用户的主组-G
: 修改用户的附加组-d
: 修改用户的家目录-s
: 修改用户的登录shell-l
: 修改用户名
1.3 删除用户
- 命令:
userdel
- 语法:
userdel [选项] 用户名
- 常用选项:
- 示例:
# 删除用户user1及其家目录
userdel -r user1
-r
: 删除用户的同时删除其家目录
2. 用户组管理命令
2.1 创建用户组
- 命令:
groupadd
- 语法:
groupadd 组名
- 示例:
# 创建一个名为admins的用户组
groupadd admins
2.2 修改用户组
- 命令:
groupmod
- 语法:
groupmod [选项] 组名
- 常用选项:
- 示例:
# 将组名admins修改为administrators
groupmod -n administrators admins
-n
: 修改组名
2.3 删除用户组
- 命令:
groupdel
- 语法:
groupdel 组名
- 示例:
# 删除组administrators
groupdel administrators
3. 用户和组的关联
- 将用户添加到组:
usermod -G 组名 用户名
- 查看用户所属组:
groups 用户名
4. 运维案例
4.1 创建一个新用户,并将其添加到wheel组(sudo组)
useradd -m -g users -G wheel user3
passwd user3
4.2 将用户user2从组admins中移除
usermod -G '' -G admins user2
4.3 删除一个不再使用的用户组
groupdel oldgroup
5. 其他相关命令
- passwd: 修改用户密码
- id: 显示用户和组的UID和GID
- su: 切换用户
- sudo: 以其他用户身份执行命令
Ansible Playbook创建用户并配置umask
1. Playbook结构
---
- name: Create users and set umask
hosts: all
become: yes
tasks:
- name: Create audit user
user:
name: audit_user
group: audit_group
createhome: yes
comment: Audit user
shell: /bin/bash
uid: 1001
gid: 1001
- name: Create read-only user
user:
name: read_only_user
group: read_only_group
createhome: yes
comment: Read-only user
shell: /bin/bash
uid: 1002
gid: 1002
- name: Create read-write user
user:
name: read_write_user
group: read_write_group
createhome: yes
comment: Read-write user
shell: /bin/bash
uid: 1003
gid: 1003
- name: Set umask for all users
lineinfile:
path: /etc/profile
regexp: 'umask'
line: 'umask 024'
insertafter: EOF
2. Playbook解释
- hosts: all: 表示该Playbook作用于所有配置的主机。
- become: yes: 以root权限执行任务。
- user模块: 用于创建用户。
name
: 用户名group
: 用户所属组createhome
: 创建用户家目录comment
: 用户注释shell
: 用户登录shelluid
: 用户IDgid
: 用户组ID
- lineinfile模块: 用于修改
/etc/profile
文件,设置umask。
regexp
: 匹配已有umask行line
: 新的umask设置insertafter
: 在文件末尾插入
3. 执行Playbook
- 保存上述内容为一个YAML文件,例如
create_users.yml
。 - 执行Playbook:
ansible-playbook create_users.yml
4. Playbook功能
- 创建三个用户: 分别是audit_user、read_only_user和read_write_user,并为每个用户创建同名组。
- 设置umask: 将所有用户的umask设置为024,这意味着新创建的文件默认权限为644(-rw-r--r--),新创建的目录默认权限为755(drwxr-xr-x)。
5. 注意事项
- umask设置位置: 将umask设置在
/etc/profile
文件中,确保所有登录用户都生效。 - 用户组: 可以根据实际需求创建不同的用户组,并赋予不同的权限。
- UID和GID: 可以自定义UID和GID,但要注意避免与系统用户冲突。
- 其他配置: 可以根据需要在user模块中添加更多参数,例如
home
,password
等。 - 测试环境: 建议在测试环境中先运行Playbook,确保配置正确。
总结
本文详细介绍了Linux系统中常用的用户和用户组管理命令,并通过实例进行了说明。通过掌握这些命令,可以方便地管理系统用户和用户组,保障系统安全。