三、用户权限

1、权限的三种类型

  1. 读: r=4
  2. 写: w=2
  3. 执行: x=1

2、权限设置

权限对象:

u:属主
g:属组
o:其他人
a(u+g+o):所有人

(1)符号设置:
chmod 参数[-R]    对象[u/g/o]    赋值符[+/-/=]    权限类型[r/w/x]    文件目录/文件名
-R        # 赋值文件夹下所有文件的权限

(2)数字设置:
chmod 777 文件/目录(三个位置的数字分别表示为u,g,o 且r=4,w=2,x=1)

3、修改属主,属组

(1)可修改属组与属主:
chown 用户名:组名 文件/目录

(2)修改属组:
chgrp 组名 文件/目录
-R    # 递归修改目录下的文件属性

以上权限为UGO,为用户的基本权限

4、ACL权限

普通用户只能指定u/g/o的权限类型,可以借助于acl特别指定某位用户的权限

ACL access controll list 限制用户对文件的访问

     访问     控制     列表

ACL是UGO的补充,或者说是加强版

(1)设置acl权限
setfacl -m [u/g/o]:user名/gruop名:[r/w/x] 文件/目录
-m:设置acl权限

(2)查看acl权限
getfacl 文件名

(3)删除acl权限
setfacl -x [u/g/o]:user/gruop 文件/目录
setfacl -x u:user01 1.txt
setfacl -b 文件/目录    # 删除该文件所有的acl权限

5、特殊权限

(1)SUID:针对可执行二进制文件。用户执行该文件是,可暂时获得属主的权限。在user执行为表现为s/S[s:代表是一个可执行文件,S:代表没有执行权限]

(2)SGID:当SGID作用于文件时,用户在执行该文件时将暂时获得该文件的属组权限。当SGID作用于目录时,若用户对该目录具有w和x权限,则用户在该目录下所创建的属组将和该目录的属组相同。在group执行为表现为s/S

(3)SBIT:仅针对目录,当用户在该目录下创建新文件或目录时,仅有自己和root才有权力删除。在other执行为表现为t/T

(4)设置特殊权限:

chmod 4755 文件/目录    # 第一个数字为特殊权限,SUID=4,SGID=2,SBIT=1

6、特殊权限

(1)查看文件特殊属性
        `lsattr 文件名`

lsattr属性注释

参数 功能
i 锁定文件,目录【不能对文件进行增删该,root也不例外】
A 不允许更新文件访问时间
c 文件在磁盘会自动进行压缩
d 不能使用dump命令备份文件
D 设置文件夹的属性时,更改会在同步保存在磁盘上
a 只允许在这个文件中进行追加操作,【只能在最后一行进行追加】

注:各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项

(2)设置文件特殊属性
chattr [+/-] [属性] 文件名

属性i:表示该文件不能被改动

7、默认权限

umask:表示默认要减掉的权限

(1)查看默认权限:umask

目录的默认权限是755
 0777
-0022
——————
 0755        # 系统为什么创建目录/文件夹的时候,权限是755

为什么文件的默认权限是644
  0777
 -0022
 -0111
 ——————
  0644        # 系统保护机制,会自动去除文件的所有执行权限,创建后需要自己加上x权限

(2)设置默认权限:
umask 0222            # 改变了默认权限

文件的一般权限为666,目录的一般权限为777。真实默认权限需要减掉umask