在Linux系统中,用户权限管理是系统安全的核心组成部分。以下是Linux用户权限管理的全面指南:
# 创建用户
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 # 删除用户及其主目录
# 创建组
sudo groupadd groupname
# 修改组成员
sudo gpasswd -a username groupname # 添加用户到组
sudo gpasswd -d username groupname # 从组中移除用户
# 删除组
sudo groupdel groupname
ls -l # 查看文件权限
stat filename # 查看详细权限信息
# 使用chmod修改权限
chmod u+rwx filename # 给所有者添加读写执行权限
chmod g+rw filename # 给组添加读写权限
chmod o-rwx filename # 移除其他用户的所有权限
chmod 755 filename # 数字方式设置权限(rwxr-xr-x)
# 递归修改目录权限
chmod -R 755 directory/
sudo chown username filename # 修改文件所有者
sudo chown username:groupname filename # 同时修改所有者和组
sudo chgrp groupname filename # 只修改组
# 递归修改目录所有者
sudo chown -R username:groupname directory/
chmod u+s filename # 设置SUID位
chmod 4755 filename # 数字方式设置SUID
chmod g+s filename # 设置SGID位
chmod 2755 filename # 数字方式设置SGID
chmod +t directory # 设置粘滞位
chmod 1777 directory # 数字方式设置粘滞位
# 查看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
编辑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 *
通过合理运用这些工具和技术,您可以构建一个既安全又灵活的Linux权限管理系统。