插件窝 干货文章 Linux系统中如何管理用户权限

Linux系统中如何管理用户权限

权限 用户 username filename 619    来源:    2025-05-04

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

在Linux系统中,用户权限管理是系统安全的核心组成部分。以下是Linux用户权限管理的全面指南:

一、用户和组管理

1. 用户管理

# 创建用户
sudo useradd username
sudo passwd username  # 设置密码

# 修改用户属性
sudo usermod -aG groupname username  # 将用户添加到附加组
sudo usermod -d /new/home/dir username  # 修改用户主目录

# 删除用户
sudo userdel username  # 保留用户文件
sudo userdel -r username  # 删除用户及其主目录

2. 组管理

# 创建组
sudo groupadd groupname

# 修改组成员
sudo gpasswd -a username groupname  # 添加用户到组
sudo gpasswd -d username groupname  # 从组中移除用户

# 删除组
sudo groupdel groupname

二、文件权限管理

1. 查看权限

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

2. 修改权限

# 使用chmod修改权限
chmod u+rwx filename  # 给所有者添加读写执行权限
chmod g+rw filename   # 给组添加读写权限
chmod o-rwx filename  # 移除其他用户的所有权限
chmod 755 filename    # 数字方式设置权限(rwxr-xr-x)

# 递归修改目录权限
chmod -R 755 directory/

3. 修改所有者和组

sudo chown username filename  # 修改文件所有者
sudo chown username:groupname filename  # 同时修改所有者和组
sudo chgrp groupname filename  # 只修改组

# 递归修改目录所有者
sudo chown -R username:groupname directory/

三、特殊权限

1. SUID (Set User ID)

chmod u+s filename  # 设置SUID位
chmod 4755 filename  # 数字方式设置SUID

2. SGID (Set Group ID)

chmod g+s filename  # 设置SGID位
chmod 2755 filename  # 数字方式设置SGID

3. Sticky Bit

chmod +t directory  # 设置粘滞位
chmod 1777 directory  # 数字方式设置粘滞位

四、访问控制列表(ACL)

# 查看ACL
getfacl filename

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

# 默认ACL(对目录设置后,新创建的文件继承这些权限)
setfacl -d -m u:username:rwx directory

五、sudo权限管理

编辑sudoers文件(使用visudo命令):

sudo visudo

常见配置示例:

# 允许用户执行所有命令
username ALL=(ALL:ALL) ALL

# 允许组执行所有命令
%groupname ALL=(ALL:ALL) ALL

# 允许特定命令无需密码
username ALL=(ALL) NOPASSWD: /usr/bin/apt-get update

# 允许特定命令,限制参数
username ALL=(root) /usr/bin/rsync --server --sender *

六、最佳实践

  1. 最小权限原则:只授予必要的权限
  2. 定期审计:检查用户权限和特殊权限设置
  3. 使用组管理:基于角色分配权限而非直接给用户
  4. 避免使用root:日常操作使用普通用户+sudo
  5. 监控敏感文件:/etc/passwd, /etc/shadow, /etc/sudoers等
  6. 使用ACL:当标准权限模型不够灵活时

通过合理运用这些工具和技术,您可以构建一个既安全又灵活的Linux权限管理系统。