chmod 是 Linux 系统中用于更改文件或目录权限的重要命令。合理配置权限对于系统安全至关重要。以下是一些安全权限配置的建议和最佳实践。
Linux 文件权限分为三类: - 所有者(User):文件/目录的所有者 - 组(Group):文件/目录所属的用户组 - 其他(Other):其他所有用户
每种权限类型有三种权限: - 读(r):4 - 写(w):2 - 执行(x):1
bash
chmod 600 文件名
bash
chmod 644 文件名
bash
chmod 700 目录名
bash
chmod 755 目录名
bash
chmod 750 可执行文件
SetUID (4):以文件所有者身份运行
chmod u+s 文件
chmod 4755 文件
SetGID (2):以文件所属组身份运行
chmod g+s 文件
chmod 2755 文件
Sticky Bit (1):只有文件所有者才能删除/重命名(常用于/tmp目录)
chmod +t 目录
chmod 1777 目录
敏感文件(如密码文件、私钥)应设置为 600 权限:
chmod 600 /etc/shadow
chmod 600 ~/.ssh/id_rsa
Web 目录通常设置为 755(目录)和 644(文件):
chmod -R 755 /var/www/html/
find /var/www/html/ -type f -exec chmod 644 {} \;
避免使用 777 权限,这会允许所有用户读写执行,存在严重安全隐患:
# 不推荐的做法
chmod 777 文件或目录
递归修改权限时要小心:
chmod -R 750 目录/ # 递归修改目录及其内容
检查系统权限:
# 查找全局可写文件
find / -xdev -type f -perm -o+w
# 查找没有所有者的文件
find / -xdev -nouser -o -nogroup
使用 umask设置默认权限:
umask 027 # 新文件权限为640,目录为750
查看文件权限:
ls -l 文件名
查看目录权限:
ls -ld 目录名
记住,权限配置应该根据具体需求和最小权限原则来设置,过度宽松的权限会带来安全风险。