用户账户管理
1. 用户信息
查看当前用户
whoami
查看用户信息
id username
查看当前登录用户和系统负载
w
查看当前登录用户
who
查看用户登录历史
last
查看指定用户登录历史
last username
2. 用户配置文件
查看用户配置文件
cat /etc/passwd
查看用户密码信息
cat /etc/shadow
查看用户组配置
cat /etc/group
3. 切换用户
切换用户
su - username
以其他用户身份执行命令
sudo -u username command
用户组管理
1. 查看组信息
查看当前用户所属组
groups
查看指定用户所属组
groups username
查看组成员
getent group groupname
2. 组操作
将用户添加到组
gpasswd -a username groupname
从组中删除用户
gpasswd -d username groupname
修改用户主组
newgrp groupname
文件权限管理
1. 查看文件权限
查看文件详细信息
ls -l filename
查看目录及内容权限
ls -lR directory
查看文件ACL权限
getfacl filename
2. 修改文件权限
修改文件权限(数字方式)
chmod 644 filename
给所有者添加执行权限
chmod u+x filename
移除组写权限
chmod g-w filename
设置其他用户只读权限
chmod o=r filename
递归修改目录权限
chmod -R 755 directory/
3. 修改文件所有者
修改文件所有者
chown username filename
同时修改所有者和组
chown username:groupname filename
递归修改目录所有者
chown -R username:groupname directory/
4. 特殊权限
设置SUID权限
chmod u+s filename
设置SGID权限
chmod g+s directory
设置粘滞位
chmod +t directory
ACL权限管理
1. 设置ACL权限
为用户设置ACL权限
setfacl -m u:username:rwx filename
为组设置ACL权限
setfacl -m g:groupname:rx filename
递归设置ACL权限
setfacl -R -m u:username:rwx directory/
2. 查看和删除ACL
查看ACL权限
getfacl filename
删除指定ACL权限
setfacl -x u:username filename
删除所有ACL权限
setfacl -b filename
实用技巧
1. 批量修改权限
查找并修改文件权限
find /path -type f -exec chmod 644 {} \;
查找并修改目录权限
find /path -type d -exec chmod 755 {} \;
保持目录权限一致
chmod --reference=source_file target_file
2. 默认权限设置
查看默认权限掩码
umask
修改默认权限掩码
umask 022
设置目录默认ACL
setfacl -d -m u:username:rwx directory/
安全建议
定期审查用户权限
查看特权用户
grep -E "^sudo|^admin" /etc/group
检查空密码账户
awk -F: '($2 == "") {print $1}' /etc/shadow
文件权限检查
查找具有SUID权限的文件
find / -perm -4000 -type f
查找世界可写的文件
find / -perm -2 -type f
日志监控
查看认证日志
tail -f /var/log/auth.log
查看sudo使用记录
grep sudo /var/log/auth.log
注意事项
- 谨慎使用root权限,必要时才使用sudo
- 定期检查系统中的特权用户和组
- 重要文件设置适当的权限限制
- 及时删除不再使用的用户账户
- 定期审查系统权限配置