插件窝 干货文章 Linux系统中的用户和权限管理指南

Linux系统中的用户和权限管理指南

用户 权限 username 文件 981    来源:    2025-04-18

Linux系统中的用户和权限管理指南

一、用户管理基础

1. 用户账户类型

  • root用户:超级管理员,UID为0,拥有系统完全控制权
  • 系统用户:UID 1-999,用于运行系统服务/后台进程
  • 普通用户:UID 1000+,分配给实际使用系统的个人

2. 用户相关配置文件

  • /etc/passwd:存储用户账户信息
  • /etc/shadow:存储加密密码及密码策略
  • /etc/group:存储组信息
  • /etc/gshadow:存储组密码信息

二、常用用户管理命令

1. 用户操作

# 创建用户
sudo useradd -m -s /bin/bash username  # -m创建家目录,-s指定shell
sudo passwd username  # 为用户设置密码

# 修改用户属性
sudo usermod -aG groupname username  # 将用户添加到附加组
sudo usermod -s /bin/zsh username  # 修改用户shell
sudo usermod -L username  # 锁定用户
sudo usermod -U username  # 解锁用户

# 删除用户
sudo userdel -r username  # -r同时删除家目录和邮件池

2. 组操作

# 创建组
sudo groupadd groupname

# 修改组
sudo groupmod -n newname oldname  # 重命名组

# 删除组
sudo groupdel groupname

三、权限管理

1. 文件权限基础

  • 权限类型
    • r (read):读取权限
    • w (write):写入权限
    • x (execute):执行权限
  • 权限位
    • 用户(u):文件所有者
    • 组(g):文件所属组
    • 其他(o):其他用户
    • 所有(a):所有用户

2. 权限表示法

  • 符号表示:rwxr-xr--
  • 数字表示:755 (r=4, w=2, x=1)

3. 权限管理命令

# 查看权限
ls -l filename  # 查看详细权限信息

# 修改权限
chmod u+x filename  # 给所有者添加执行权限
chmod 755 filename  # 设置权限为rwxr-xr-x
chmod -R 755 directory  # 递归修改目录权限

# 修改所有者
chown user:group filename  # 修改所有者和组
chown -R user:group directory  # 递归修改

4. 特殊权限

  • SUID (Set User ID):以文件所有者身份执行
    • chmod u+s filechmod 4755 file
  • SGID (Set Group ID):以文件所属组身份执行
    • chmod g+s filechmod 2755 file
  • Sticky Bit:目录中只有文件所有者能删除文件
    • chmod +t directorychmod 1777 directory

四、高级权限控制

1. ACL (访问控制列表)

# 查看ACL
getfacl filename

# 设置ACL
setfacl -m u:username:rwx filename  # 为用户设置权限
setfacl -m g:groupname:rx filename  # 为组设置权限
setfacl -x u:username filename  # 删除用户ACL条目

# 默认ACL (对新建文件生效)
setfacl -d -m u:username:rwx directory

2. sudo权限管理

  • 配置文件:/etc/sudoers (使用visudo编辑)
  • 示例配置: username ALL=(ALL:ALL) ALL # 授予用户所有权限 %groupname ALL=(ALL) NOPASSWD: ALL # 组内用户无需密码执行所有命令 username ALL=(root) /usr/bin/apt update # 允许特定命令

五、安全最佳实践

  1. 最小权限原则:只授予必要的权限
  2. 定期审计:检查用户和权限设置 bash sudo awk -F: '($3 == 0) {print}' /etc/passwd # 检查所有UID为0的用户 sudo find / -perm -4000 -type f 2>/dev/null # 查找所有SUID文件
  3. 密码策略
    • 修改/etc/login.defs设置密码过期策略
    • 使用chage命令管理用户密码过期
  4. 禁用root SSH登录:修改/etc/ssh/sshd_configPermitRootLogin no

六、故障排查

  1. 权限拒绝错误

    • 检查用户是否在正确的组中
    • 检查文件权限和所有者
  2. sudo权限问题

    • 确认用户在sudoers文件中
    • 检查/var/log/auth.log获取详细信息
  3. 用户无法登录

    • 检查/etc/passwd/etc/shadow中的用户条目
    • 确认用户shell有效且未被锁定

通过合理管理用户和权限,可以确保Linux系统的安全性和稳定性。建议定期审查用户权限设置,遵循最小权限原则,并记录所有权限变更。