在Linux系统中,文件的权限控制着文件的所有操作,比如一个文件的读写权限、执行权限、是否为目录等等。
    
    以下操作全部在终端中执行, 快捷键
    
     Ctrl+Alt+T
    
   
    输入
    
     ls -l
    
    命令来列出当前文件夹下所有文件和子文件夹的权限详情。
   
user1@wzjing-win10:/mnt/c/Users/user1$ ls -l
total 458391864
drwxrwxrwx 0 root root       512 May 13 00:51 AppData
drwxrwxrwx 0 root root       512 Apr 25 00:10 CLionProjects
drwxrwxrwx 0 root root       512 May 22 09:32 compile
drwxrwxrwx 0 root root       512 May 28 14:08 Desktop
-rwxrwxrwx 0 root root       512 May 28 14:08 test.apk
每一行的含义分别如下:
| 权限 | incode | 所属用户 | 所属用户组 | 文件大小 | 修改时间 | 文件或文件名 | 
|---|---|---|---|---|---|---|
| drwxrwxrwx | 0 | root | root | 512 | May 13 00:51 | AppData | 
    每一行的第一个字段,如
    
     drwxrwxrwx
    
    代表了这个文件的权限详情,共分为10位,由
    
     d r w x –
    
    五种标识符组成,
   
- d 是否为目录
- r 代表用户是否有读取权限
- w 代表用户是否有写入权限
- x 代表用户是否有执行权限
- – 代表此项为空,也就是没有此项权限的意思
| 位置 | 属性 | 含义 | 
|---|---|---|
| 第1位 | d | 代表是否为文件夹 | 
| 第2-4位 | rwx | 代表所属用户的 读 写 执行 权限 | 
| 第5-7位 | rwx | 代表所属用户组的 读 写 执行 权限 | 
| 第8-10位 | rwx | 代表其他用户的 读 写 执行 权限 | 
    如第一位是
    
     d
    
    代表是文件夹, 第一位如果是
    
     -
    
    代表不是文件夹(那不就是文件喽)
    
    
     rwx
    
    代表有读取、写入、执行权限,如果为
    
     -wd
    
    代表无读取、有写入、有执行权限
    
    好吧,现在来理解这一行
   
drwxrwxrwx 0 root root       512 May 13 00:51 AppData
- 
     
 第1位
 
 
 d
 
 是文件夹
- 
     
 2-4位
 
 
 rwx
 
 所属用户
 
 root
 
 有
 
 读取、写入、执行
 
 三项权限
- 
     
 5-7位
 
 
 rwx
 
 所属用户组
 
 root
 
 有
 
 读取、写入、执行
 
 三项权限
- 
     
 8-10位
 
 
 rwx
 
 其他用户
 
 user1
 
 有
 
 读取、写入、执行
 
 三项权限
    使用
    
     chmod
    
    命令更改文件权限
   
chmod
    语法
    
     chmod [权限操作] [文件名]
    
    
    你不能把一个文件改成文件夹或者把文件夹改成文件,所以你只能改后9位
    
    使用
    
     u g o a
    
    代表要更改的权限群组,
   
- u [代表所属用户]
- g [代表所属用户组]
- o [代表其他用户]
- a [代表以上所有三个]
- – [代表删除权限]
- + [代表增加权限]
- = [代表将权限设置为]
    
     示例
    
    (如果提示你没权限修改的话,就在命令前边增加sudo)
    
    
     chmod u+x test.apk
    
    代表增加所属用户对test.apk的
    
     可执行
    
    权限
    
    
     chmod a-w AppData
    
    代表删除所有人对AppData这个文件夹的
    
     写入
    
    权限
    
    
     chmod -w AppData
    
    a可以省略,此条命令和上边这条完全相同
    
    
     也可以一次设置多个权限
    
    
    
     chmod g+rwx AppData
    
    代表添加所属用户组
    
     可读取、可写入、可执行
    
    权限
    
    
     chmod g=rwx AppData
    
    代表把所属用户组的权限设置为
    
     可读取、可写入、可执行
    
    
    **Tip: **其实
    
     +
    
    和
    
     =
    
    的区别不是很大
   
有一种更为简便的写法:
    Linux系统内部设定:
    
     r
    
    =4
    
     w
    
    =2
    
     x
    
    =1
    
     –
    
    =0
    
    
     r w x
    
    任意一种组合的三个值相加的结果都不同
    
    如:
    
    rwx=7
    
    -wx=3
    
    r-x=5
    
    rw-=6
    
    所以可以这么写命令:
    
    
     chmod 777 test.apk
    
    设置权限为 -rwxrwxrwx
    
    
     chmod 755 test.apk
    
    设置权限为 -rwxr-xr-x
    
    
     chmod 666 test.apk
    
    设置权限为 -rw-rw-rw-
   
 
