一、用户管理概述
Linux系统是多用户多任务操作系统,用户管理是系统管理的基础,包括用户创建、删除、修改和权限控制。
更多视频教程www.fgedu.net.cn
1.1 用户分类
| 用户类型 | UID范围 | 说明 |
|---|---|---|
| 超级用户 | 0 | root用户,拥有最高权限 |
| 系统用户 | 1-999 | 系统服务运行账户 |
| 普通用户 | 1000+ | 普通登录用户 |
二、用户管理命令
2.1 创建用户
# 创建用户
useradd zhangsan
# 创建用户并指定选项
useradd -d /home/zhangsan -s /bin/bash -g users -G wheel zhangsan
# 常用选项
-d 指定家目录
-s 指定登录Shell
-g 指定主组
-G 指定附加组
-u 指定UID
-c 添加注释
-m 创建家目录
-M 不创建家目录
# 创建用户并设置密码
useradd -m zhangsan
echo "zhangsan:password" | chpasswd
# 使用adduser交互式创建(Debian/Ubuntu)
adduser lisi
# 输出示例
[root@server ~]# useradd -m zhangsan
[root@server ~]# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
[root@server ~]# useradd -m zhangsan
[root@server ~]# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
2.2 修改用户
# 修改用户属性
usermod -l newname oldname # 修改fgedu
usermod -d /home/newdir user # 修改家目录
usermod -s /bin/zsh user # 修改Shell
usermod -g group user # 修改主组
usermod -G group1,group2 user # 修改附加组
usermod -aG group user # 添加附加组
usermod -L user # 锁定用户
usermod -U user # 解锁用户
usermod -e 2024-12-31 user # 设置过期日期
# 修改用户密码
passwd zhangsan
# 强制用户下次登录修改密码
chage -d 0 zhangsan
# 设置密码过期时间
chage -M 90 zhangsan # 90天后过期
chage -E 2024-12-31 zhangsan # 指定过期日期
2.3 删除用户
# 删除用户
userdel zhangsan
# 删除用户及家目录
userdel -r zhangsan
# 删除用户及所有相关文件
userdel -r -f zhangsan
三、组管理
3.1 组管理命令
# 创建组
groupadd developers
# 创建组并指定GID
groupadd -g 2000 developers
# 修改组
groupmod -n newname oldname # 修改组名
groupmod -g 2001 groupname # 修改GID
# 删除组
groupdel developers
# 添加用户到组
gpasswd -a user group
# 从组中删除用户
gpasswd -d user group
# 设置组管理员
gpasswd -A admin group
# 查看用户所属组
groups zhangsan
# 查看组成员
groupmems -l -g developers
四、用户配置文件
4.1 /etc/passwd
# 用户信息文件格式
# fgedu:密码占位符:UID:GID:注释:家目录:Shell
root:x:0:0:root:/root:/bin/bash
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
# 查看用户信息
cat /etc/passwd
getent passwd zhangsan
4.2 /etc/shadow
# 密码文件格式
# fgedu:加密密码:最后修改:最小天数:最大天数:警告:不活动:过期:保留
zhangsan:$6$xxx:19500:0:99999:7:::
# 字段说明
加密密码: $id$salt$encrypted
$1$ - MD5
$5$ - SHA-256
$6$ - SHA-512
!! 或 * - 账户锁定
# 查看密码信息
chage -l zhangsan
4.3 /etc/group
# 组信息文件格式
# 组名:密码占位符:GID:组成员
root:x:0:
wheel:x:10:zhangsan,lisi
developers:x:2000:wangwu
# 查看组信息
cat /etc/group
getent group wheel
五、文件权限管理
5.1 权限说明
| 权限 | 文件 | 目录 | 数值 |
|---|---|---|---|
| r (读) | 查看内容 | 列出目录内容 | 4 |
| w (写) | 修改内容 | 创建/删除文件 | 2 |
| x (执行) | 执行程序 | 进入目录 | 1 |
5.2 chmod命令
# 符号模式
chmod u+x file # 所有者添加执行权限
chmod g-w file # 组移除写权限
chmod o=r file # 其他人只读
chmod a+x file # 所有人添加执行权限
chmod u=rwx,g=rx,o=r file
# 数字模式
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod 700 file # rwx------
chmod 777 file # rwxrwxrwx
# 递归修改
chmod -R 755 /var/www/html
# 参考模式
chmod --reference=file1 file2
5.3 chown命令
# 修改所有者
chown user file
# 修改所有者和组
chown user:group file
# 只修改组
chown :group file
# 递归修改
chown -R user:group /var/www/html
# 参考模式
chown --reference=file1 file2
5.4 chgrp命令
# 修改所属组
chgrp group file
# 递归修改
chgrp -R developers /var/www/html
六、特殊权限
6.1 SUID/SGID/Sticky
# SUID (4): 执行时获得文件所有者权限
chmod u+s /usr/bin/passwd
chmod 4755 /usr/bin/passwd
# SGID (2): 执行时获得文件所属组权限
chmod g+s /shared/project
chmod 2775 /shared/project
# Sticky (1): 目录下文件只能由所有者删除
chmod +t /tmp
chmod 1777 /tmp
# 查看特殊权限
ls -la /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2021 /usr/bin/passwd
ls -la /tmp
drwxrwxrwt. 8 root root 4096 Jan 15 10:00 /tmp
七、ACL访问控制
7.1 ACL配置
# 查看ACL
getfacl file
# 设置用户ACL
setfacl -m u:zhangsan:rwx file
# 设置组ACL
setfacl -m g:developers:rx file
# 设置默认ACL(目录)
setfacl -d -m u:zhangsan:rwx directory
# 删除ACL
setfacl -x u:zhangsan file
setfacl -b file # 删除所有ACL
# 递归设置
setfacl -R -m u:zhangsan:rwx directory
# 查看ACL
getfacl file
# file: file
# owner: root
# group: root
user::rw-
user:zhangsan:rwx
group::r--
group:developers:r-x
mask::rwx
other::r--
八、sudo权限管理
8.1 sudo配置
# 编辑sudo配置
visudo
# 基本配置格式
# 用户 主机=(运行身份) 命令
# 允许用户执行所有命令
zhangsan ALL=(ALL) ALL
# 允许用户无密码执行命令
zhangsan ALL=(ALL) NOPASSWD: ALL
# 允许用户执行特定命令
zhangsan ALL=(ALL) /usr/bin/systemctl, /usr/sbin/service
# 允许组执行命令
%wheel ALL=(ALL) ALL
%developers ALL=(ALL) /usr/bin/git, /usr/bin/docker
# 别名定义
User_Alias ADMINS = zhangsan, lisi, wangwu
Cmnd_Alias SOFTWARE = /usr/bin/yum, /usr/bin/rpm, /usr/bin/dnf
ADMINS ALL=(ALL) SOFTWARE
8.2 sudo使用
# 以root执行命令
sudo command
# 以指定用户执行
sudo -u zhangsan command
# 切换到root
sudo -i
sudo su -
# 查看可执行的命令
sudo -l
# 验证sudo配置
visudo -c
九、最佳实践
| 配置项 | 建议 |
|---|---|
| root登录 | 禁用SSH直接登录 |
| 密码策略 | 复杂度+定期更换 |
| 权限分配 | 最小权限原则 |
| 用户审计 | 定期检查用户列表 |
注意事项:
- 谨慎使用root权限
- 定期审计用户和权限
- 设置强密码策略
- 及时删除离职用户账户
十、总结
用户与权限管理是Linux系统管理的基础。通过本培训文档,您应该掌握了:
- 用户和组的创建、修改、删除
- 用户配置文件的结构
- 文件权限的管理方法
- 特殊权限的使用
- ACL访问控制配置
- sudo权限管理
IT运维培训文档系列 | 第45篇 | Linux系统用户与权限管理培训
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
