Debian 11 Bullseye 用户权限管理实操指南
一 用户与用户组管理
- 创建与删除
- 创建用户(交互式,推荐):sudo adduser username
- 创建用户(非交互式):sudo useradd -m -u 1010 -g users -s /bin/bash username
- 删除用户:sudo deluser username;删除用户及家目录:sudo deluser --remove-home username
- 修改与查询
- 改名:sudo usermod -l new_username old_username
- 改家目录:sudo usermod -d /new/home -m username
- 改登录Shell:sudo usermod -s /bin/zsh username
- 锁定/解锁:sudo passwd -l username;sudo passwd -u username
- 查询所属组:groups username 或 id username
- 用户组
- 创建/删除:sudo groupadd groupname;sudo groupdel groupname
- 加入/移除组:sudo usermod -aG groupname username;sudo gpasswd -d username groupname
- 说明:将用户加入组时务必使用 -a(append),避免覆盖原有附加组。
二 文件与目录权限
- 查看与修改
- 查看:ls -l
- 数字法:chmod 755 file(所有者 rwx,组和其他 r-x);chmod 644 file(rw-r–r–)
- 符号法:chmod u+x file;chmod g-w file;chmod o=r file
- 属主与属组
- 修改属主/属组:sudo chown username:groupname file;仅改属组:sudo chgrp groupname file
- 默认权限掩码
- 设置:umask 022(新文件通常为 644,目录 755);umask 002(组内可写 664/775)
- 特殊权限
- SUID:chmod u+s file(执行时临时拥有属主权限)
- SGID:chmod g+s dir(目录中新文件继承目录的组)
- Sticky:chmod +t dir(仅所有者可删除自己在该目录下的文件)
三 提权与sudo配置
- 授予sudo
- 将用户加入 sudo 组:sudo usermod -aG sudo username
- 直接编辑 sudoers:sudo visudo
- 允许某用户执行所有命令:username ALL=(ALL:ALL) ALL
- 允许某组执行所有命令:%admins ALL=(ALL:ALL) ALL
- 精细化授权
- 限制主机与命令:username hostname=(allowed_user:allowed_group) allowed_commands
- 安全建议
- 始终使用 visudo 编辑,避免语法错误导致无法提权
- 遵循最小权限原则,尽量以组为单位授权
四 细粒度访问控制与系统安全
- ACL(访问控制列表)
- 安装:sudo apt install acl
- 设置:setfacl -m u:username:rwx file;setfacl -m g:groupname:r-x dir
- 查看:getfacl file
- 登录与SSH访问控制
- 仅允许指定用户登录:/etc/ssh/sshd_config 中添加 AllowUsers user1 user2
- SFTP 限制到家目录示例:
- Match User username
- ChrootDirectory /home/username
- ForceCommand internal-sftp
- 使配置生效:sudo systemctl restart sshd
- 审计与合规
- 登录历史:last username;当前登录:who
- 说明
- Debian 11 默认使用 AppArmor 作为 MAC 框架;若需 SELinux,需另行安装与启用,配置复杂度较高,非必要不建议在生产环境启用。
五 磁盘配额与密码策略
- 磁盘配额
- 安装:sudo apt install quota
- 在 /etc/fstab 目标分区挂载选项添加:usrquota,grpquota
- 示例:/dev/sda1 / ext4 defaults,usrquota,grpquota 0 1
- 启用与设置:
- 重新挂载:sudo mount -o remount /
- 初始化:sudo quotacheck -avug
- 开启:sudo quotaon -av
- 编辑用户配额:sudo edquota username(设置软/硬限制,如 blocks/inodes)
- 密码策略
- 设置最大有效期(如 90 天):sudo chage -M 90 username
- 强制下次登录修改密码:sudo chage -d 0 username