用户与组管理
-
创建用户
sudo useradd -m -s /bin/bash username # -m创建家目录,-s指定shell sudo passwd username # 设置密码
-
创建用户组
sudo groupadd groupname
-
将用户加入组
sudo usermod -aG groupname username # -aG追加组(不覆盖原有组)
-
查看用户所属组
groups username
文件/目录权限控制
Linux权限分为三类:
- 所有者(u)、所属组(g)、其他用户(o)
- 权限类型:读(r=4)、写(w=2)、执行(x=1)
-
修改文件所有权
sudo chown username:groupname filename # 同时修改所有者和组 sudo chown username filename # 仅修改所有者 sudo chgrp groupname filename # 仅修改所属组
-
设置权限值
sudo chmod 750 directory/ # 示例:所有者rwx,组r-x,其他无权限
- 权限值计算:
- 所有者:
7
= 4(r)+2(w)+1(x) - 所属组:
5
= 4(r)+0(w)+1(x) - 其他用户:
0
- 所有者:
- 权限值计算:
-
递归修改目录权限
sudo chmod -R 755 /path/to/dir/ # -R递归子目录
高级权限设置
-
SUID(Set User ID)
- 文件执行时临时获取所有者权限
chmod u+s /usr/bin/script.sh # 设置SUID(权限显示为rws)
- 文件执行时临时获取所有者权限
-
SGID(Set Group ID)
- 目录中新文件继承父目录组
chmod g+s /shared_dir/ # 设置SGID(权限显示为rws)
- 目录中新文件继承父目录组
-
粘滞位(Sticky Bit)
- 仅文件所有者可删除自己的文件(适用于公共目录)
chmod +t /tmp/ # 设置粘滞位(权限显示为rwt)
- 仅文件所有者可删除自己的文件(适用于公共目录)
权限管理最佳实践
-
- 普通用户禁止
sudo
权限,需操作时通过visudo
单独授权:username ALL=(ALL) /usr/bin/apt # 仅允许该用户使用apt命令
- 普通用户禁止
-
关键目录权限建议
| 目录 | 推荐权限 | 说明 |
|—|—|—|
|/etc
| 755 | 系统配置目录 |
|/var/log
| 700 | 日志目录(仅root可读) |
| 用户家目录 | 700 | 禁止其他用户访问 | -
定期审查权限
# 查找所有SUID/SGID文件(潜在风险点) find / -perm /6000 -type f -exec ls -ld {} \; # 检查全局可写文件 find / -perm -o+w -type f ! -path "/proc/*" -exec ls -l {} \;
安全加固措施
-
禁用root远程登录
编辑/etc/ssh/sshd_config
:PermitRootLogin no
-
使用SSH密钥认证
ssh-keygen -t ed25519 # 生成密钥对 ssh-copy-id user@remote-server # 部署公钥
-
配置密码策略
- 修改
/etc/login.defs
:PASS_MAX_DAYS 90 # 密码有效期 PASS_MIN_DAYS 7 # 修改间隔
- 安装
libpam-pwquality
强化密码复杂度。
- 修改
故障排查
- 权限拒绝(Permission Denied):
- 检查用户所属组:
groups username
- 查看文件权限:
ls -l /path/to/file
- 审查SELinux状态:
sestatus
(若启用需调整策略)
- 检查用户所属组:
引用说明:
- 权限模型依据Linux Filesystem Hierarchy Standard
- 安全建议参考CIS Linux Benchmarks
- 命令文档来源Linux man pages
通过精细化权限控制,可显著降低未授权访问风险,建议结合审计工具(如auditd
)定期扫描系统,确保权限策略持续有效。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9478.html