对Linux文件权限的理解

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的所有用户)

操作运算符:

operator 含义
+ 为指定的用户类型添加权限
- 为指定的用户类型删除权限
= 设定或重置指定用户类型的权限

设计ugoa的含义:

  • 我之前有个疑问以数字的形式去修改文件权限,为什么还需要有ugoa这种形式去修改权限呢?
    原因可能是:虽然有了数字形式修改权限,但是修改起来可能不是很方便,使用ugoa的形式可以快速的去更改一个文件的权限,例如我需要去掉group和other用户的执行权限:chmod go-x hello.sh 或者给所有用户添加读写执行权限: chmod a+rwx hello.sh 等等
posted @ 2017-07-07 16:24  0xcafedaddy  阅读(16595)  评论(0编辑  收藏