Linux文件权限由ls -l输出最左10字符表示:第1位为文件类型,后9位每3位分别对应所有者、所属组、其他用户的读(r)、写(w)、执行(x)权限;数字权限用八进制三位表示,r=4、w=2、x=1;特殊权限含setuid(s)、setgid(s)、sticky(t)及SELinux(.)、ACL(+)标记。
Linux文件权限直接用 ls -l 就能看清,核心是看输出最左边那10个字符——前1位表示文件类型,后9位分三组,每组3位分别对应所有者(user)、所属组(group)、其他用户(others)的读(r)、写(w)、执行(x)权限。
运行 ls -l filename,典型输出如:
-rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt
其中 -rw-r--r-- 是权限部分:
权限也可用三位八进制数表示,每位对应一组权限(u/g/o),每组按 r=4、w=2、x=1 相加:
例如 chmod 644 file.txt 等价于 chmod u=rw,g=r,o=r file.txt,结果就是上面看到的 -rw-r--r--。
不用死记,抓住三个常用判断点:
除了基础 rwx,还要注意这些常见扩展:
/所属组身份查扩展属性用 getfacl filename,查 SELinux 上下文加 -Z 参数:ls -lZ filename。
基本上就这些。权限本质就是“谁对什么能做什么”,看懂那10个字符,再结合 chmod/chown/getfacl 等命令,全部场景都够用了。