[Q&A] rwx
的含义
r(Read)(4) : 读取权限,允许用户打开并查看文件内容,或者浏览目录中的文件列表。
w(Write)(2) : 写入权限,允许用户修改或删除文件内容,对于目录,则意味着用户可以创建、删除或重命名该目录下的文件。
x(eXecute)(1) : 执行权限,允许用户运行一个可执行文件(脚本或二进制程序),而对于目录,则意味着用户可以切换到该目录(即cd进入该目录)。
-(Dash)(0) : 如果某个位置上没有相应的权限,则用-代替,如rw-r--r--
[Q&A] 权限表示方式
权限显示位一共为10位,分为四段,从第2位算起,每3个1组
- | rw- | r-- | r-x |
---|---|---|---|
- 表示为普通文件 | 文件所属用户拥有的权限rw- :4+2+0=6 | 该用户所属组拥有的权限r-- :4+0+0=4 | 其他用户拥有的权限r-x :4+0+1=5 |
技巧:
1、权限值为奇数
则肯定有执行权限
[Q&A] 755 啥意思?
7 | 5 | 5 |
---|---|---|
所有者(user) | 同组用户(group) | 其他用户(others) |
4+2+1=7 | 4+0+1=5 | 4+0+1=5 |
拥有读(4)、写(2)、执行(1)权限 | 拥有读(4)、执行(1)权限,没有写权限 | 拥有读(4)、执行(1)权限,没有写权限 |
[Q&A] Linux系统中常见权限组合
组合 | 所有者(user) | 同组用户(group) | 其他用户(others) |
---|---|---|---|
777 | 读✅ 写✅ 执行✅ | 读✅ 写✅ 执行✅ | 读✅ 写✅ 执行✅ |
755 | 读✅ 写✅ 执行✅ | 读✅ 写❌ 执行✅ | 读✅ 写❌ 执行✅ |
750 | 读✅ 写✅ 执行✅ | 读✅ 写❌ 执行✅ | 读❌ 写❌ 执行❌ |
644 | 读✅ 写✅ 执行❌ | 读✅ 写❌ 执行❌ | 读✅ 写❌ 执行❌ |
700 | 读✅ 写✅ 执行✅ | 读❌ 写❌ 执行❌ | 读❌ 写❌ 执行❌ |
600 | 读✅ 写✅ 执行❌ | 读❌ 写❌ 执行❌ | 读❌ 写❌ 执行❌ |
500 | 读✅ 写❌ 执行✅ | 读❌ 写❌ 执行❌ | 读❌ 写❌ 执行❌ |
777:虽然这提供了最大的访问自由度,但在安全性方面存在风险,应当谨慎使用,仅在确实需要所有用户都具备完全控制权的情况下使用。
755:通常用于可执行脚本
或公共程序文件
,以及需要其他用户能够浏览其内容的目录。
750:这种权限常用于需要同组内共享资源
,同时限制其他用户的场景。例如,同一项目组内的成员可以访问共享目录,而其他非组内用户则无法访问。
644:这是最常用的常规文件权限设置
,用于大多数不需要修改的文本文件或数据文件。
700:适用于私密文件
或配置文件
,仅允许文件所有者访问和操作。
600:常用于口令文件
或者私钥
等敏感文件。
500:这种权限组合通常用于保护重要文件
,确保只有所有者能够读取和执行文件,而其他用户则无法访问。
4755 或 -rws
r-xr-x:设置了Set User ID(suid)位。任何用户在运行该程序时都会暂时获得所有者的权限。这种设置通常用于一些需要特权操作的程序,例如sudo命令或者某些需要临时提升权限的应用程序。
2755 或 -rwxr-s
r-x设置了Set Group ID(sgid)位。任何用户在该目录下创建的新文件或子目录将继承该目录的组所有权,而非创建者的主组。这对于共享资源和协作非常有用。
1777 或 -rwxrwxrwt
设置了Sticky Bit(t)位。在设置了sticky bit的公共目录中,即使其他用户拥有写入权限,也不能删除不属于自己的文件。只有文件的所有者才能删除自己的文件。典型的例子是 /tmp 目录。
请注意,在实际应用中,应当谨慎设置这些特殊权限,因为它们涉及到潜在的安全风险。