755,775,777,ugoa 等分别代表什么含义?这些数字是如何得到的?
1.常用的linux文件权限:
444 -r--r--r--
600 -rw-------
644 -rw-r--r--
666 -rw-rw-rw-
700 -rwx------
744 -rwxr--r--
755 -rwxr-xr-x
777 -rwxrwxrwx
注:使用ll命令查看文件/文件夹属性时候,一共有10列,第一个小格表示是文件夹或者连接等等
d表示文件夹,l表示连接文件,-表示文件
2.用户分组权限概念
从左至右:
- 1-3位数字代表文件所有者的权限
- 4-6位数字代表同组用户的权限
- 7-9数字代表其他用户的权限
3.数字概念解析
- 读(r)=4
- 写(w)=2
- 执行(x)=1
- 读+写+执行=4+2+1=7
通过4、2、1的组合,得到以下几种权限:
0(没有权限)
4(读取权限)
5(4+1 | 读取+执行)
6(4+2 | 读取+写入)
7(4+2+1 | 读取+写入+执行)
4.rwx字符的概念
以755为例
- 1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限
- 4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限
- 7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限
5.对ugoa的理解
ugoa简写的含义:
简称 |
含义 |
u |
user(文件的所有者) |
g |
group(与文件相关联的组) |
o |
other(所有其他用户) |
a |
all(ugo的所有用户) |
操作运算符:
- | 为指定的用户类型删除权限
= | 设定或重置指定用户类型的权限
设计ugoa的含义:
- 我之前有个疑问以数字的形式去修改文件权限,为什么还需要有ugoa这种形式去修改权限呢?
原因可能是:虽然有了数字形式修改权限,但是修改起来可能不是很方便,使用ugoa的形式可以快速的去更改一个文件的权限,例如我需要去掉group和other用户的执行权限:chmod go-x hello.sh 或者给所有用户添加读写执行权限: chmod a+rwx hello.sh 等等