1.文件权限的读取
ls -l [filename] 查看文件的属性
mkdir -dl [dirname] 查看目录的属性
*ls -l =ll
文件元数据(每一个属性字段用一个字节来记录 文件名按字母来记录字节):
[1]文件的类型
-空文本普通文件
d 目录
s(sockt) 套接字(类似于现实中的门)
l 软链接(eg:快捷方式)
c 字符设备:显示字符的设备
b 块设备
[2]此文件权限(此文件对谁能做什么事情)
[3].表示文件加载了安全上下文(selinux)
[4]硬连接的个数(文件内容被系统记录的次数)
[5]文件所属用户
[6]文件所属组
[7]文件的大小
[8]文件内容最后一次被修改的时间
[9]文件的名字
目录的元数据:
[1]目录的类型
[2]目录的权限(此目录对谁能做什么样的事情)
[3].表示目录加载了安全上下文
[4]目录中子目录的个数(一定的子目录 子文件不算)
[5]目录的所属者
[6]目录的所属组
[7]目录中所有文件和目录的元数据的大小
[8]目录中内容最后一次被修改的时间
[9]目录名称
文件的权限的改变
权限的类型及理解
*用户类型:
(1)u对所属用户user的权限
(2)对所属组group中用户的权限
(3)对其他用户other的权限
- 文件权限的类型:
r 读:是否可以显示文件中的内容
w 写:当前用户是否能对文件内容进行更改
x 执行:是否能用文件的绝对路径的名称来调用文件内记录的命令
*目录的权限类型:
x 执行:用户是否能进入到当前目录
w 写:是建立在执行权力x之上的 是否能任意的对目录中的文件进行删除或创建
r 读:是否能用ls查看目录
2.管理文件的用户及文件的组(只有超级用户能管理)
chown 对文件/目录所有者和所有组的改变
chown [username]file/dir 改变文件或目录的所有者
chown [username]:[grooupname] file/dir 改变文件或目录的所有者及所有组
chown -R dir 递归更改目录
*chown 不能对文件或目录的所有组单独修改 chgrp 对文件/目录所有组的改变
3.管理文件的权限
chmod 修改不同用户对文件的权限
修改权限的方式
1)字符的方式
chmod [u/g/o][+/-/=][w/x/r/-] 目标文件
eg*:
chmod ugo-r /mnt/file1 给文件file1的u、g、o三个用户均剥夺r读权限
chmod u+r,g+w,o+x /mnt/file1 给文件file1的u用户下放r读权力、g用户下放w写权力、o用户下放x执行权力
*chmod +x/+r /mnt/file2 给文件file2的所有用户下放x执行/r读权力
chown +/-w /mnt/file2 只给文件file2的所有者用户下放/剥夺w权力
chown a+/-w /mnt/file2 给文件file2的所有用户下放/剥夺w权力
2)八进制数字的方式
chmod [数字] 目标文件
权限 二进制 八进制
— 000 0
*–x 001 1
*-w- 010 2
-wx 011 3
*r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
*便捷记忆:只需要记住–x=1 -w-=2 r–=4 各自的八进制数字 其余情况按权限相加即可
eg:-wx=3=1+2 rwx=7=1+2+4
chmod 733(=rwx-wx-wx)/mnt/file1
3)复制权限方式
chmod --reference=[属性源文件] 目标文件
4.系统预留阀值
(1)对系统的预留阀值的理解
1)资源共享实现的功能越多,其安全性也越低
2)权限的预留阀值越大安全性越高,同时功能实现的也越少
(2)预留阀值的查看:umask
(3)预留阀值的建立:
1)临时设定 在命令行直接键入命令 umask [对应权限数字]
临时设定当再次开启shell时预留阀值会恢复为默认的值
eg:umask 077 表示设置预留阀值为—rwxrwx
当预留阀值设置为007后
默认新建目录的权限为700(777-077) 默认建立的文件的权限为600(777-077-111=700-111)
2)永久更改 需要在环境文件
/etc/profile和shell文件
/etc/ bashrc中分别设定后保存
设定后umask的值并不会立即生效 需执行
source /etc/profile
source /etc/bashrc 让设定立即生效
5.特殊权限sst的设定
(1)sticky 粘制位
1)说明
适用于公共目录(只针对于目录):在目录的权限上设置粘制位sticky权限,则目录中的文件只能被文件的所有者和超级用户所删除
对文件:表示文件即使没有被程序调用也会被加载到交换空间中
2)设定方法
chmod o+t fir 或
chmod 1xxx dir
(2)suid 冒险位
1)说明
对文件(只针对二进制文件):文件有suid权限的文件,因执行文件形成的进程的所属者为该文件的所有者,与是谁执行进程无关
对目录:目录有suid权限的目录,因执行目录而形成的进程的所有者为该目录的所有者,与是谁执行进程无关
2)设置方法
chmod u+s file/dir 或 chmod 4xxx file/dir
(3)sgid 强制位
1)说明
对文件:文件有sgid权限时,因执行文件而产生的进程的所属组为该文件的组,与是谁执行无关
对目录:目录有sgid权限时,因执行目录而产生的进程的所有组为该文件的组,与是谁执行无关;eg:在此目录中出现的文件会自动归属到该目录下,与谁建立的无关
2)设定方法
chmod g+s file/dir 或 chmod 2xxx file/dir
*注:若想同时设定sgid,suid,sticky 可以使用命令 chmod 7xxx(7=4+2+1)file/dir
7.facl(file access control list)文件权限列表
(1)作用:文件对特殊的人有特殊的权限
(2)查看文件权限列表
当文件权限后有显示+ 表示文件的权限列表被打开
查看权限: getfacl
**注:mask 表示设定权限的最大值
当打开facl权限列表之后 再对g进行减少权限操作mask会发生变化
恢复mask值用 setfacl -m m:[权限] fire/dir
(3)建立权限列表setfacl -m u/g:[特权人]/[特权组]:[特权] file/die
eg:setfacl -m u:admin:rwx /cw 表示admin用户对文件cw有读写执行特权
**注:关于目录的递归
setfacl -R -m 对已有文件递归继承facl
setfacl -m d:
d(default) 只对设定之后建立的文件/目录有继承效果
setfacl -k dir 删除default继承facl效果
(4)setfacl -x user/group 去除权限
(5)setfacl -b file/dir 关闭权限列表