leafee98-blog/content/essays/linux-file-system-permission.md

57 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

---
title: "Linux 文件系统中的权限"
date: 2021-09-29T21:04:52+08:00
tags: []
categories: []
weight: 50
show_comments: true
draft: false
---
## 普通权限
### 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](https://www.redhat.com/sysadmin/suid-sgid-sticky-bit)
2. [https://superuser.com/questions/471844/why-is-setuid-ignored-on-directories](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](https://unix.stackexchange.com/questions/21251/execute-vs-read-bit-how-do-directory-permissions-in-linux-work)