netnr/ rwx.md 2019-04-09 07:29
Linux修改文件属性和权限

### 文件权限描述由10个字符组成,例如,“-rwxr-xr--”、"drwxr-xr-x"
+ 第一个字符的含义为:
    - d: 目录
    - -: 文件
    - l: 连接文件
    - b: 设备文件里面的可供存储的接口设备
    - c: 设备文件里面的串行端口设置,例如键盘、鼠标
+ 接下来的9个字符,分为三组,每组三个字符,均为 `rwx` 的三个参数组合。位置不会改变,没有某权限,则出现 `-` 号
+ 三组字符中,第一组表示文件所有者的权限;第二组表示同用户组的权限;第三组表示others的权限
+ 三种身份又有三种权限,r(读)、w(写)、x(执行)

### 修改文件所属用户组
命令:`chgrp`
```
chgrp users run.sh  # 修改文件 run.sh 的所属用户组为 users
```

### 修改文件所有者
命令:`chown`
```
chown userone run.sh    # 修改 run.sh 的所有者为 userone
```

### 修改权限
命令:`chmod`

每组权限对应的数字

字符 | 值
 ---- | ---- 
r | 4
w | 2
x | 1

如 -rwxrwx--- 分数是 770

组 | 值 | 和
 ---- | ---- | ---- 
owner | 4+2+1 | 7
group | 4+2+1 | 7
others | 0+0+0 | 0

```
chmod 754 fileone   # 修改fileone文件权限字符 -rwxrwxrwx 为 -rwxr-xr-- ,计算权限数字为 754
```
另一种方法,owner、group和others三种身份各自的三个权限,用u、g、o代表三种身份,用a(all)代表所有身份,表:

命令 | 身份 | 设置 | 权限  | 目标
 ---- | ---- | ---- | ---- | ---- 
chmod | u g o a | +(添加) -(减少) =(设置) | r w x | 文件或目录

```
chmod u=rwx,go=rx fileone   # 文件fileone的权限,user权限为rwx,group和others的权限均为rx
chmod a+w fileone   # 设置每个人都可以对文件fileone写入
chmod a-x fileone   # 去掉全部人的执行权限
chmod 666 dir -R    # 递归去除 dir 目录执行权限
```