1. 首页 > Linux教程 > 正文

Linux教程FG020-用户与组管理基础

本文将详细介绍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 用户管理操作

用户管理操作:

# 步骤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 组管理操作

组管理操作:

# 步骤1:查看所有组
$ 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 权限管理操作

权限管理操作:

# 步骤1:创建测试目录
$ 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 批量用户创建脚本

批量用户创建脚本:

#!/bin/bash
# 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 用户权限管理脚本

用户权限管理脚本:

#!/bin/bash
# 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 最佳实践

用户与组管理的最佳实践:

  • 建立用户管理制度
  • 使用组简化权限管理
  • 配置密码策略和过期策略
  • 定期审计用户和组
  • 监控用户登录和活动
生产环境建议:在生产环境中,建议建立完善的用户与组管理体系,包括用户创建、权限分配、审计监控等,以确保系统的安全性。学习交流加群风哥微信: itpux-com

通过本文的介绍,相信读者对Linux用户与组管理基础有了更全面的了解。掌握这些知识有助于更好地管理系统用户和权限。学习交流加群风哥QQ113257174

更多学习教程公众号风哥教程itpux_com

from Linux:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息