一、权限查看及读取
1.权限查看
查看文件权限:ls -l file
查看目录权限:ls -ld dir
2.权限的读取
- 文件的属性被叫做文件的元数据(meta data)
- 一种元数据用1个byte来记录内容
1、文件权限信息
- |rw-r--r--| . | 1 | root | root | 0 | Jan 25 21:27 |file
[1] [2] [3] [4] [5] [6] [7] [8] [9]
2、目录权限信息
d | rw-r--r-- | . | 2 | root | root | 6 | Jan 25 21:28 |dir
[1] [2] [3] [4] [5] [6] [7] [8] [9]
标号 [1] | 表示文件类型 |
---|---|
- | 普通文件 |
d | 目录 |
l | 软连接 |
b | 快设备 |
c | 字符设备 |
s | socket套接字 |
p | 管道 |
标号 | 作用 |
---|---|
[2] | 用户权限 |
rw- r-- r-- ( u+g+o) | |
[3] | 系统的selinux开启 |
[4] | 于文件:文件内容被系统记录的次数(硬链接个数) |
于目录:目录中子目录的个数 | |
[5] | 文件拥有者 |
[6] | 文件拥有组 |
[7] | 对于文件:文件内容大小 |
对于目录:目录中子文件的元数据大小 | |
[8] | 文件内容被修改的时间 |
[9] | 文件名称 |
二.普通权限的类型及作用
1.用户对文件的身份
u ----> user 文件的拥有者,ls -l 看到的第五列信息
g ----> group 文件拥有组, ls -l 看到的第六列信息
o ----> other 既不是拥有者也不是拥有组成员的其他用户的通称
2.权限位
rwx | r-- | r--
u g o
3.用户身份匹配
user > group > other
4.权限类型
_ | 权限未开启 |
r | 可读 |
对于文件:可以读取文件内容 | |
对于目录:可以ls列出目录中的文件 | |
w | 可写 |
对于文件:可以更改文件内容 | |
对于目录:可以在目录中新建或者删除文件 | |
x | 可执行 |
对于文件:可以用文件名称调用文件内记录的程序 | |
对于目录:可以进入目录中 |
三.设定普通权限的方法
1.chmod 设定文件权限
2.chmod 复制权限
chmod --reference=test dir ---->复制 test目录的权限到dir上
chmod -R --reference=/tmp /mnt/westosdir ----->复制/tmp目录的权限到/mnt/westosdir及其中的子文件上
- -R 代表第归操作
3.chmod 字符方式设定权限
chmod < a|u|g|o > < +|-|= > < r|w|x > file
例如:
chmod u-rw /mnt/westos1
chmod a-rwx /mnt/westosfile3
4.chmod 数字方式设定权限#
权限波尔指表示方式
rwx | = 111 |
— | = 000 |
三位二进制可以表示的最大范围为8进制数
rwx | =111 | =7 |
rw- | =110 | =6 |
r-x | =101 | =5 |
r– | =100 | =4 |
-wx | =011 | =3 |
-w- | =010 | =2 |
–x | =001 | =1 |
— | =000 | = 0 |
四.系统默认权限设定
- 系统本身存在的意义共享资源
- 从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
- 既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放
- 把不安全的权力默认保留
保留权力的方法
1.umask表示系统保留的权力
2.umask 查看保留权力
3.umask 权限值 -->临时设定系统预留权力
4.文件默认权限 = 777-umask-111
目录默认权限 = 777-umask
5.umask值越大系统安全性越高
6.umask临时更改
7.永久更改
vim /etc/bashrc ----->shell系统配置文件
vim /etc/profile -----> 系统环境配置文件
- source作用时使我们更改的内容立即被系统识别
source /etc/bashrc
source /etc/profile
五.文件用户用户组管理
chown username file 更改文件拥有者
chgrp groupname file 更改文件拥有组
chown username:groupname file 同时更改文件的拥有者和拥有组
chown|chgrp -R user|group dir 更改目录本身及目录中内容的拥有者或者拥有组
六.特殊权限
1.stickyid(粘制位)
- 针对目录: 如果一个目录stickyid开启,那么这个目录中的文件,只能被文件所有人删除
chmod 1原始权限 dir
chmod o+t dir
实验:
解决方法 ----> 开启t权限
chmod 1777 /pub
chmod o+t /pub
以上两条命令都可以开启pub目录的t权限
2.sgid(强制位)
- 针对目录: 目录中新建的文件自动归属到目录的所属组中
命令基本格式: chmod 2源文件权限 dir
chmod g+s dir
实验
注意:chmod g+s /mnt/westosdir — > 谁建立的此文件,组属于谁
开启sgid后,file1自动复制了/mnt/westosdir目录组
3.suid(冒险位)
- 只针对二进制的可执行文件(c程序)
- 当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
语法基本格式: chmod 4原属性 file
chmod u+s file
实验:
七.acl权限列表
1.Aiccess Control Lists ----- 访问控制列表
功能: 在列表中可以设定特殊用户对与特殊文件有特殊权限
2.acl列表开启标识
- 没有"+"代表acl列表未开启
-rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile
^
acl列表功能开启
3.acl列表权限读取 getfacl westosfile
显示内容分析
名称 | 功能 |
---|---|
file: westosfile | 文件名称 |
owner: root | 文件拥有者 |
group: root | 文件拥有组 |
user::rw- | 文件拥有者权限 |
user:lee:rw- | 特殊指定用户权限 |
group::r– | 文件拥有组权限 |
group:westos:— | 特殊指定的用户组的权限 |
mask::rw- | 能够赋予特殊用户和特殊用户组的最大权限阀值 |
other::r– | 其他人的权限 |
注意: 当文件权限列表开启,不要用ls -l 的方式来读取文件的权限
4.acl列表的控制
setfacl -m u:lee:rw westosfile 设定
setfacl -m g:westos:rw westosfile
setfacl -m u::rwx westosfile
setfacl -m g::0 westosfile
setfacl -x u:lee westosfile 删除列表中的lee
setfacl -b westosfile 关闭
5.acl 权限优先级
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
#acl mask 控制
#mask是能够赋予指定用户权限的最大阀值
6.问题
当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力
mask会发生变化
7.恢复:
setfacl -m m:权限 文件
8.acl 列表的默认权限
setfacl -m u:lee:rwx /mnt/westosdir 只对于/mnt/westosdir目录本身生效
setfacl -Rm u:lee:rwx /mnt/westosdir 对于/mnt/westosdir目录和目录中已经存在的内容生效
以上的命令之针对与存在的文件生效,新建文件是不会被设定的
setfacl -m d:u:lee:rwx /mnt/westosdir/ ----->针对与/mnt/westosdir目录中新建文件生效
八.attr权限
#attr权限限制所有用户
i | 不能作任何的更改 |
a | 能添加不能删除 |
lsattr dir|file -----查看attr权限
chattr +i|+a|-i|-a dir|file ------ 设定attr权限