1. 首页 > IT综合教程 > 正文

45. Linux系统用户与权限管理培训

一、用户管理概述

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)

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

联系我们

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

微信号:itpux-com

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