2026-10-17 13:17:40
在Linux中设置合适的文件权限需结合权限模型、用户类型及操作场景,以下是具体步骤和注意事项:
一、理解Linux权限模型拥有者(owner):文件创建者或通过chown指定的用户。
拥有组(group):文件所属用户组,可通过chgrp修改。
其他用户(others):除拥有者和组外的所有用户。
读(r/4):查看文件内容或列出目录内容。
写(w/2):修改文件内容或在目录中创建/删除文件。
执行(x/1):运行文件或进入目录(对目录必须设置x才能访问其内容)。
使用ls -l命令查看文件或目录的权限、拥有者和组:
ls -l file.txt# 输出示例:-rw-r--r-- 1 owner group 0 Jan 1 10:00 file.txt权限值计算:读(4)+写(2)+执行(1)=总和(如7=rwx,5=r-x)。
chmod 755 file.txt # 拥有者:rwx(7),组和其他:r-x(5)chmod 644 script.sh # 拥有者:rw-(6),组和其他:r--(4)文件默认权限:666 - umask(无执行权限)。
目录默认权限:777 - umask(需执行权限才能访问)。
umask 022 # 文件默认权限:644(-rw-r--r--),目录:755(drwxr-xr-x)umask 002 # 组用户可写(文件664,目录775)确认文件系统支持ACL(如ext4、XFS):tune2fs -l /dev/sdX | grep "Default mount options" # 查看是否包含`acl`
挂载时启用ACL(若未启用):sudo mount -o remount,acl /path/to/mount
使用setfacl和getfacl管理ACL:setfacl -m u:username:rwx file.txt # 赋予用户`username`读写执行权限setfacl -m g:groupname:rw file.txt # 赋予组`groupname`读写权限getfacl file.txt # 查看ACL规则
配置文件:644(rw-r--r--),确保只有拥有者可修改。
可执行脚本:755(rwxr-xr-x),允许所有用户运行但仅拥有者可修改。
共享目录:755(rwxr-xr-x),允许组和其他用户列出内容。
私有目录:700(rwx------),仅拥有者可访问。
避免使用777权限,防止未授权修改。
敏感文件(如密码、密钥)设置600(rw-------)。
定期审计权限:find /path -type f -perm -002 -ls(查找可被其他用户写入的文件)。
SUID(4):文件执行时以拥有者身份运行(如/usr/bin/passwd)。
SGID(2):目录中新建文件继承组权限。
Sticky Bit(1):目录中仅文件所有者可删除(如/tmp)。chmod 4755 script.sh # 设置SUIDchmod 1777 /tmp # 设置Sticky Bit
通过合理组合上述方法,可实现安全且灵活的Linux文件权限管理。