# 权限管理
严格控制权限

## 基本权限
- 

### 基本权限
- 第一位-  ,文件类型(-文件,d 目录, l软链接文件)
- rw- 读写权限 ,r-- 仅读权限,r-- 仅读权限
- 1, 所有者  2,所属组 3,其他人
- chmod [选项]  模式 文件名  修改权限   
 #选项  : -R 递归   #模式 [ugoa][+-=] [rwx]  ,[mode=421]
-777 最高权限
- 755 rwxr-xr-x 表示所有者最高权限其他为读写权限
- 644 rw-r--r--表示是文件权限,最高只有读写权限没有执行权限


这是为什么文件有读写权限还是不能删除文件,因为这是需要上一级文件夹的权限来决定的
![Markdown](http://i1.piimg.com/1949/37754e005c74ff6b.png)

## 权限对目录的作用

- useradd 用户名 创建用户
- passwd user   设置密码

- 对文件来讲最高权限是x
- 对目录来讲最高权限是w

其他权限管理

对文件的所属组进行更改

- chown user1 
- chgrp user  修改组
- gpassws -a user2
- groupadd user # 添加组
- gpasswd -a haochen user  往组里面添加用户
分配文件基本权限时,原则在最小权限情况下能够实现要求即可

# 默认权限

- umask 默认权限默认是0022
- 进行 加减


# ACL权限

- su - lw 切换用户
- whoami  我是谁
- chown  tony:stu xx # 表示修改所有者和所属组

ACL是用来解决用户身份不足的情况

- 开启方法
- 查看分区权限  df
- dumpe2fs -h /dev/sda5
- 临时挂载acl ,mount -o remount ,acl
- 永久性 vi /etc/fstab
- getfacl# 查看acl权限 
- setfacl #设置acl权限
- setfacl -m u:lw:rw /xx   #给lw用户在/xx目录上附上rw权限
- 最大mask 最大权限
- setfacl -m m:rx xx  #设置mask值限定最高权限
- setfacl  -x lw:rx xx  删除acl权限
- setfacl - b 删除所有的acl权限

# 默认权限与递归权限

- -R 递归权限,有权限溢出
- setfacl -m d:u:lw:rw -R /home/xx 默认权限 

# sudo权限

root



# 文件特殊权限

- setUID //用户添加s权限
- SetGID//给组添加s权限
- Sticky BIT//给其他用户添加s权限

## SetUID的功能

- 在SUID中s 是能正确执行的权限,S表示不能正确执行的权限
- 只有可执行的二进制程序才能设定SUID权限
- 命令直行至要对该陈旭有执行权限
- 命令执行者在执行该程序时获得改程序的文件属主的身份
- 属主的身份只能在程序执行过程中有效
- 使用例子.usr/bin/passwd
- 因为/etc/shadow只有超级管理员有权限,但是给文件赋予了SUID权限的话普通用户就能操作文件了

## 如何设置s权限

- lsattr #查看属性

setUID

- chmod  4755 user 
- chmod  0755 user 取消s权限

SetGID
- chmod  2755 组
- chmod  0755 组 # 取消
因为/usr/bin/locate 普通用户切成组成员,而且能对文件夹有效

SBIT

- SBIT只能对目录生效,
- 执行用户必须有7权限
- 用户能创建和删除自己的文件

## chattr权限

- chattr i ,添加属性
对文件不能进行操作
对文件夹是只能修改文件下的文件,不能新建删除
- chattr a 对文件可以增加但是不能删除和修改
只能用echo >>>数据