Leafee98's Blog

Linux 文件系统中的权限

· 449 words · 1 minutes to read

普通权限 🔗

READ 🔗

对文件来说, 就是文件的读取权限, 如 cat .

对目录来说, 就是查询目录下文件结构的权限, 如 ls .

WRITE 🔗

对文件来说, 就是文件的写入权限, 如重定向输出到这个文件.

对目录来说, 就是修改此目录下的文件结构的权限, 包括创建文件/删除文件/移动文件.

EXECUATE 🔗

对文件来说, 就是文件的执行权限.

对于目录来说, 就是进入此目录的权限, 并控制访问此目录中的其他文件或目录的权限, 若无此权限, 则目录的读写权限也会受到影响.

额外权限 🔗

SUID (user+s) 🔗

标记到文件(file)时, 此文件在运行时, 会以文件属主的身份运行.

标记到目录(directory)时, 不会有任何作用.

如命令 sudo 就是属主为 root 的添加 SUID 标记的可执行文件.

SGID (group+s) 🔗

标记到文件时, 文件在运行时会以文件属组的身份运行.

标记到目录(directory)时, 所有在此目录下创建的文件, 其属组均会变为该目录的属组. (移动文件至此目录下属组不会改变)

STICKY (other+t) 🔗

标记到文件时, 不会产生任何效果.

标记到目录时, 对于此目录下的所有文件, 将仅有这些文件的属主分别对其有删除权限.

参考: 🔗

  1. https://www.redhat.com/sysadmin/suid-sgid-sticky-bit
  2. https://superuser.com/questions/471844/why-is-setuid-ignored-on-directories
  3. https://unix.stackexchange.com/questions/21251/execute-vs-read-bit-how-do-directory-permissions-in-linux-work