本文将详细介绍Linux用户与组管理的基础知识,包括用户和组的创建、删除、修改等操作。风哥教程参考Linux官方文档System administration章节内容,为读者提供全面的用户与组管理指南。
参考Red Hat Enterprise Linux 10官方文档中的System administration章节
Part01-基础概念与理论知识
1.1 用户管理概述
Linux系统是多用户操作系统,每个用户都有唯一的用户名和用户ID(UID)。用户管理是系统管理的重要组成部分,包括用户的创建、删除、修改等操作。更多视频教程www.fgedu.net.cn
1.2 组管理概述
组是用户的集合,用于简化权限管理。每个组都有唯一的组名和组ID(GID)。通过组管理,可以方便地为多个用户分配相同的权限。
1.3 用户与组文件
Linux系统使用以下文件存储用户和组信息:
- /etc/passwd:用户账户信息
- /etc/shadow:用户密码信息
- /etc/group:用户组信息
- /etc/gshadow:用户组密码信息
Part02-生产环境规划与建议
2.1 用户管理建议
用户管理建议:
- 遵循最小权限原则,只授予必要的权限
- 定期检查用户账户,删除不必要的账户
- 设置强密码策略,提高账户安全性
- 配置账户过期策略,定期更新密码
- 监控用户登录,发现异常登录
2.2 组管理建议
组管理建议:
- 合理规划组结构,便于权限管理
- 定期检查组成员,移除不必要的成员
- 使用组简化权限管理
- 记录组变更,便于审计
2.3 安全建议
用户与组管理的安全建议:
- 禁用root远程登录
- 限制sudo用户
- 配置登录失败锁定
- 定期审计用户和组
- 使用SSH密钥认证
Part03-生产环境项目实施方案
3.1 用户管理操作
用户管理操作:
$ whoami
fgedu
# 步骤2:查看用户信息
$ id
uid=1000(fgedu) gid=1000(fgedu) groups=1000(fgedu),10(wheel)
# 步骤3:查看所有用户
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
fgedu:x:1000:1000:fgedu:/home/fgedu:/bin/bash
# 步骤4:创建新用户
$ sudo useradd -m -s /bin/bash fgedu_user1
$ sudo useradd -m -s /bin/bash fgedu_user2
$ sudo useradd -m -s /bin/bash fgedu_user3
# 步骤5:设置用户密码
$ sudo passwd fgedu_user1
Changing password for user fgedu_user1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
$ sudo passwd fgedu_user2
Changing password for user fgedu_user2.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
$ sudo passwd fgedu_user3
Changing password for user fgedu_user3.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# 步骤6:查看用户信息
$ id fgedu_user1
uid=1001(fgedu_user1) gid=1001(fgedu_user1) groups=1001(fgedu_user1)
$ id fgedu_user2
uid=1002(fgedu_user2) gid=1002(fgedu_user2) groups=1002(fgedu_user2)
$ id fgedu_user3
uid=1003(fgedu_user3) gid=1003(fgedu_user3) groups=1003(fgedu_user3)
# 步骤7:修改用户信息
$ sudo usermod -c “FGEdu User 1” fgedu_user1
$ sudo usermod -s /bin/zsh fgedu_user2
$ sudo usermod -aG wheel fgedu_user3
# 步骤8:查看修改后的用户信息
$ grep fgedu_user1 /etc/passwd
fgedu_user1:x:1001:1001:FGEdu User 1:/home/fgedu_user1:/bin/bash
$ grep fgedu_user2 /etc/passwd
fgedu_user2:x:1002:1002:fgedu_user2:/home/fgedu_user2:/bin/zsh
$ id fgedu_user3
uid=1003(fgedu_user3) gid=1003(fgedu_user3) groups=1003(fgedu_user3),10(wheel)
# 步骤9:删除用户
$ sudo userdel -r fgedu_user3
# 步骤10:验证用户删除
$ id fgedu_user3
id: ‘fgedu_user3’: no such user
$ ls -l /home/
total 20
drwx——. 15 fgedu fgedu 4096 Apr 2 10:00 fgedu
drwx——. 3 fgedu_user1 fgedu_user1 4096 Apr 2 10:00 fgedu_user1
drwx——. 3 fgedu_user2 fgedu_user2 4096 Apr 2 10:00 fgedu_user2
3.2 组管理操作
组管理操作:
$ cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
wheel:x:10:fgedu,fgedu_user3
fgedu:x:1000:
fgedu_user1:x:1001:
fgedu_user2:x:1002:
# 步骤2:创建新组
$ sudo groupadd fgedu_group1
$ sudo groupadd fgedu_group2
$ sudo groupadd fgedu_group3
# 步骤3:查看组信息
$ grep fgedu_group /etc/group
fgedu_group1:x:1004:
fgedu_group2:x:1005:
fgedu_group3:x:1006:
# 步骤4:修改组信息
$ sudo groupmod -n fgedu_dev_group fgedu_group1
# 步骤5:将用户添加到组
$ sudo usermod -aG fgedu_group2 fgedu_user1
$ sudo usermod -aG fgedu_group3 fgedu_user2
# 步骤6:查看用户所属组
$ id fgedu_user1
uid=1001(fgedu_user1) gid=1001(fgedu_user1) groups=1001(fgedu_user1),1005(fgedu_group2)
$ id fgedu_user2
uid=1002(fgedu_user2) gid=1002(fgedu_user2) groups=1002(fgedu_user2),1006(fgedu_group3)
# 步骤7:查看组成员
$ getent group fgedu_group2
fgedu_group2:x:1005:fgedu_user1
$ getent group fgedu_group3
fgedu_group3:x:1006:fgedu_user2
# 步骤8:从组中移除用户
$ sudo gpasswd -d fgedu_user1 fgedu_group2
Removing user fgedu_user1 from group fgedu_group2
# 步骤9:验证组成员
$ getent group fgedu_group2
fgedu_group2:x:1005:
# 步骤10:删除组
$ sudo groupdel fgedu_group3
# 步骤11:验证组删除
$ grep fgedu_group3 /etc/group
3.3 权限管理操作
权限管理操作:
$ mkdir -p /fgedu/test
$ cd /fgedu/test
# 步骤2:创建测试文件
$ echo “This is a test file” > fgedu_test.txt
# 步骤3:查看文件权限
$ ls -l
total 4
-rw-rw-r– 1 fgedu fgedu 24 Apr 2 10:00 fgedu_test.txt
# 步骤4:修改文件权限
$ chmod 644 fgedu_test.txt
$ ls -l fgedu_test.txt
-rw-r–r– 1 fgedu fgedu 24 Apr 2 10:00 fgedu_test.txt
# 步骤5:修改文件所有者
$ sudo chown fgedu_user1:fgedu_group2 fgedu_test.txt
$ ls -l fgedu_test.txt
-rw-r–r– 1 fgedu_user1 fgedu_group2 24 Apr 2 10:00 fgedu_test.txt
# 步骤6:修改目录权限
$ sudo chmod 755 /fgedu/test
$ ls -ld /fgedu/test
drwxr-xr-x 2 fgedu fgedu 4096 Apr 2 10:00 /fgedu/test
# 步骤7:设置setuid
$ sudo chmod 4755 /fgedu/test
$ ls -ld /fgedu/test
drwsr-xr-x 2 fgedu fgedu 4096 Apr 2 10:00 /fgedu/test
# 步骤8:设置setgid
$ sudo chmod 2755 /fgedu/test
$ ls -ld /fgedu/test
drwxr-sr-x 2 fgedu fgedu 4096 Apr 2 10:00 /fgedu/test
# 步骤9:设置sticky bit
$ sudo chmod 1755 /fgedu/test
$ ls -ld /fgedu/test
drwxr-xr-t 2 fgedu fgedu 4096 Apr 2 10:00 /fgedu/test
# 步骤10:查看文件详细信息
$ stat fgedu_test.txt
File: fgedu_test.txt
Size: 24 Blocks: 8 IO Block: 4096 regular file
Access: (0644/-rw-r–r–) Uid: ( 1001/fgedu_user1) Gid: ( 1005/fgedu_group2)
Access: 2026-04-02 10:00:00.000000000 +0800
Modify: 2026-04-02 10:00:00.000000000 +0800
Change: 2026-04-02 10:00:00.000000000 +0800
Birth: 2026-04-02 10:00:00.000000000 +0800
Part04-生产案例与实战讲解
4.1 企业用户管理案例
某企业用户管理的案例:
- 管理内容:创建开发、测试、生产用户组,管理用户权限
- 安全措施:配置密码策略,监控用户登录
- 成果:用户管理规范化,权限控制精细化
4.2 批量用户创建脚本
批量用户创建脚本:
# create_users.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# 用户列表
USERS=(
“fgedu_dev1”
“fgedu_dev2”
“fgedu_dev3”
“fgedu_fgfgtest1”
“fgedu_fgfgtest2”
“fgedu_ops1”
)
# 组列表
GROUPS=(
“fgedu_dev”
“fgedu_test”
“fgedu_ops”
)
# 创建组
echo “Creating groups…”
for GROUP in “${GROUPS[@]}”; do
sudo groupadd “$GROUP”
echo “Group $GROUP created”
done
# 创建用户
echo “”
echo “Creating users…”
for USER in “${USERS[@]}”; do
# 确定用户所属组
if [[ $USER == *”dev”* ]]; then
GROUP=”fgedu_dev”
elif [[ $USER == *”test”* ]]; then
GROUP=”fgedu_test”
elif [[ $USER == *”ops”* ]]; then
GROUP=”fgedu_ops”
fi
# 创建用户
sudo useradd -m -s /bin/bash -G “$GROUP” “$USER”
# 设置默认密码
echo “$USER:Fgedu@123456” | sudo chpasswd
# 强制用户下次登录时修改密码
sudo chage -d 0 “$USER”
echo “User $USER created and added to group $GROUP”
done
# 查看创建的用户和组
echo “”
echo “=== Created Groups ===”
for GROUP in “${GROUPS[@]}”; do
getent group “$GROUP”
done
echo “”
echo “=== Created Users ===”
for USER in “${USERS[@]}”; do
id “$USER”
done
# 执行脚本
$ chmod +x create_users.sh
$ ./create_users.sh
Creating groups…
Group fgedu_dev created
Group fgedu_test created
Group fgedu_ops created
Creating users…
User fgedu_dev1 created and added to group fgedu_dev
User fgedu_dev2 created and added to group fgedu_dev
User fgedu_dev3 created and added to group fgedu_dev
User fgedu_fgfgtest1 created and added to group fgedu_test
User fgedu_fgfgtest2 created and added to group fgedu_test
User fgedu_ops1 created and added to group fgedu_ops
=== Created Groups ===
fgedu_dev:x:1007:fgedu_dev1,fgedu_dev2,fgedu_dev3
fgedu_test:x:1008:fgedu_fgfgtest1,fgedu_fgfgtest2
fgedu_ops:x:1009:fgedu_ops1
=== Created Users ===
uid=1004(fgedu_dev1) gid=1004(fgedu_dev1) groups=1004(fgedu_dev1),1007(fgedu_dev)
uid=1005(fgedu_dev2) gid=1005(fgedu_dev2) groups=1005(fgedu_dev2),1007(fgedu_dev)
uid=1006(fgedu_dev3) gid=1006(fgedu_dev3) groups=1006(fgedu_dev3),1007(fgedu_dev)
uid=1007(fgedu_fgfgtest1) gid=1007(fgedu_fgfgtest1) groups=1007(fgedu_fgfgtest1),1008(fgedu_test)
uid=1008(fgedu_fgfgtest2) gid=1008(fgedu_fgfgtest2) groups=1008(fgedu_fgfgtest2),1008(fgedu_test)
uid=1009(fgedu_ops1) gid=1009(fgedu_ops1) groups=1009(fgedu_ops1),1009(fgedu_ops)
4.3 用户权限管理脚本
用户权限管理脚本:
# manage_permissions.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# 目录路径
DIR=”/fgedu/app”
# 创建目录
echo “Creating directory $DIR”
sudo mkdir -p “$DIR”
# 设置目录所有者
echo “Setting directory owner to fgedu:fgedu_dev”
sudo chown fgedu:fgedu_dev “$DIR”
# 设置目录权限
echo “Setting directory permissions to 2775”
sudo chmod 2775 “$DIR”
# 验证设置
echo “”
echo “=== Directory Information ===”
ls -ld “$DIR”
# 创建子目录
echo “”
echo “Creating subdirectories”
sudo mkdir -p “$DIR”/{dev,test,ops}
sudo chown fgedu:fgedu_dev “$DIR”/dev
sudo chown fgedu:fgedu_test “$DIR”/test
sudo chown fgedu:fgedu_ops “$DIR”/ops
sudo chmod 2775 “$DIR”/{dev,test,ops}
# 验证子目录
echo “”
echo “=== Subdirectories Information ===”
ls -ld “$DIR”/*
# 创建测试文件
echo “”
echo “Creating test files”
echo “Development file” | sudo tee “$DIR”/dev/test.txt > /dev/null
echo “Test file” | sudo tee “$DIR”/test/test.txt > /dev/null
echo “Operations file” | sudo tee “$DIR”/ops/test.txt > /dev/null
# 设置文件权限
sudo chmod 664 “$DIR”/*/test.txt
# 验证文件
echo “”
echo “=== Test Files Information ===”
ls -l “$DIR”/*/test.txt
# 执行脚本
$ chmod +x manage_permissions.sh
$ ./manage_permissions.sh
Creating directory /fgedu/app
Setting directory owner to fgedu:fgedu_dev
Setting directory permissions to 2775
=== Directory Information ===
drwxrwsr-xr-x 2 fgedu fgedu_dev 4096 Apr 2 10:00 /fgedu/app
Creating subdirectories
=== Subdirectories Information ===
drwxrwsr-xr-x 2 fgedu fgedu_dev 4096 Apr 2 10:00 /fgedu/app/dev
drwxrwsr-xr-x 2 fgedu fgedu_test 4096 Apr 2 10:00 /fgedu/app/test
drwxrwsr-xr-x 2 fgedu fgedu_ops 4096 Apr 2 10:00 /fgedu/app/ops
Creating test files
=== Test Files Information ===
-rw-rw-r– 1 fgedu fgedu_dev 17 Apr 2 10:00 /fgedu/app/dev/test.txt
-rw-rw-r– 1 fgedu fgedu_test 10 Apr 2 10:00 /fgedu/app/test/test.txt
-rw-rw-r– 1 fgedu fgedu_ops 17 Apr 2 10:00 /fgedu/app/ops/test.txt
Part05-风哥经验总结与分享
5.1 用户管理建议
风哥提示:用户管理的建议:
- 最小权限:遵循最小权限原则,只授予必要的权限
- 定期审计:定期审计用户账户,删除不必要的账户
- 密码策略:设置强密码策略,定期更新密码
- 监控登录:监控用户登录,发现异常登录
- 文档记录:记录用户变更,便于审计
5.2 常见问题与解决方案
用户与组管理的常见问题与解决方案: from LinuxDBA视频:www.itpux.com
- 用户无法登录:检查用户状态、密码、shell配置
- 权限不足:检查文件和目录权限
- 组权限问题:检查组成员和组权限
- 密码过期:检查密码过期策略
5.3 最佳实践
用户与组管理的最佳实践:
- 建立用户管理制度
- 使用组简化权限管理
- 配置密码策略和过期策略
- 定期审计用户和组
- 监控用户登录和活动
通过本文的介绍,相信读者对Linux用户与组管理基础有了更全面的了解。掌握这些知识有助于更好地管理系统用户和权限。学习交流加群风哥QQ113257174
更多学习教程公众号风哥教程itpux_com
from Linux:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
