1.权限查看及读取
权限查看
ls -l wetsos ##查看文件权限
ls -ld westosdir/ ##查看目录权限
#文件权限信息#
- | rw-r--r-- | . | 1 | root | root | 0 | Apr 12 10:57 | westos
[1] [2] [3] [4] [5] [6] [7] [8] [9]
#目录权限信息#
- | rw-r--r-- | . | 2 | root | root | 0 | Apr 12 10:57 | westosdir
[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] ##文件名称
2.普通权限的类型及作用
用户对文件的身份
u: #user 文件的拥有者,ls -l 看到的第五列信息
g: #group 文件拥有组, ls -l 看到的第六列信息
o: #other 既不是拥有者也不是拥有组成员的其他用户的统称
权限位 rwx|r–|r–
u g o 用户身份匹配(user>group>other)
权限类型
‘-’ #权限未开启
r #可读
#对于文件:可以读取文件内容
#对于目录:可以ls列出目录中的文件
w #可写
#对于文件:可以更改文件内容
#对于目录:可以在目录中新建或者删除文件
x #可执行
#对于文件:可以用文件名称调用文件内记录的程序
#对于目录:可以进入目录中
3.设定普通权限的方法
##复制文件权限
chmod --reference=westosfile1 westosfile2 ##复制文件权限
chmod -R --reference=/tmp /mnt/westosdir ##复制/tmp目录的权限到/mnt/westosdir及目录中的子文件上,-R代表递归操作
4.系统默认权限设定
系统本身存在的意义共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放
把不安全的权力默认保留
如何保留权力
umask表示系统保留权力
umask #查看保留权力
umask 权限值 #临时设定系统预留权力
文件默认权限 = 777-umask-111
目录默认权限 = 777-umask
umask 077
##临时设定077的预留权限
##预留越多,权限提升,安全性越高 (程序关闭,设定会被遗忘)
永久更改
umask永久设定预定权限,编辑配置文件(系统配置与shell系统配置文件)
vim /etc/profile ##系统环境配置文件
vim /etc/bashrc ##shell系统配置文件,(74-77行)-gn ##初始组名字 -un ##用户名字
002 ##普通用户umask (60行) 022 ##超级用户umask (62行)
注: 修改后:
source /etc/profile ##使设定生效
source /etc/bashrc ##source作用时使我们更改的内容立即被系统识别
ll ##查看当前目录属性
ls -ld ##查看目录属性
ls -l file2 ##查看文件属性
5.文件用户用户组管理
chown username file ##更改文件拥有者
chgrp groupname file ##更改文件拥有组
chown username:groupname file ##同时更改文件的拥有者和拥有组
chown|chgrp -R user|group dir##更改目录本身及目录中内容的拥有者或者拥有组
.特殊权限
stickyid 粘制位
stickyid
##粘制位(一般针对目录的所有人,防止他人删掉自己文件的不合理行为)
##只能被文件所有人删除
设定:chmod o+t dir
##加特殊权限chmod 1原始权限 dir
##1为特殊权限位
- 实验:
- mkdir /pub
- chmod 777 /pub
- su - westos ------->touch /pub/westosfile
- exit
- su - lee ------->touch /pub/leefile
- rm -fr /pub/leefile ##可以删除
- rm -fr /pub/westosfile ##不属于自己的文件也可以删除
sgid 强制位
sgid
##强制位
##针对目录:目录中新建的文件自动复制目录的所有组
设定:
chmod 2源文件权限 dir
chmod g+s dir ##修改sc目录所有组,sc目录下文件的所有组也会改变
实验:
- useradd westos
- mkdir /sc
- chmod 777 /sc
- chmod g+s /sc
- groupadd shengchan
- chgrp shengchan /sc
- watch -n1 ls -lR /sc
- su - westos
- touch /sc/file4
- ls -ld /sc ##查看文件权限
suid 冒险位
suid 冒险位
权利下放原理:当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
如任何人可以看系统中的任何文件,指定当前为root(与执行文件者无关)
用处:用户权利的提升和下降
只针对二进制可执行文件(c程序)
1. which cat
2. ls -l /bin/cat
3.chmod u+s /bin/cat ##任何人执行文件时都是以文件的所有人身份
4.ls -l /bin/cat
5.chmod 4原属性 /bin/cat ##755=777-022 4=100
6.ls -l /bin/catchmod g+s /bin/cat ##任何人执行文件时都是以文件的所有组身份
1. chmod g+s /bin/cat ##任何人执行文件时都是以文件的所有组身份
2. ls -l /bin/cat
3. rm -fr file2 ##无法删除,所有人仍为普通用
4./root/rm -fr file ##身份为超级用户,可以任意删除
1. ps ax -o user,group,comm | grep cat ##扫描,后台运行,所有进程的用户组和名字。管道符号,过滤cat命令
2.watch -n 1 "ps ax -o user,group,comm | grep cat" ##监控命令
7.ACL权限列表
Access Control Lists
#访问控制列表
#功能:
#在列表中可以设定特殊用户对特殊文件有特殊权限
acl列表权限读取
getfacl westosfile
显示内容
#file:westosfile ##文件名称
#owner:root ##文件拥有者
#group:root ##文件拥有组
user::rw- ##文件拥有者权限
user:lee:rw- ##特殊指定用户权限
group::r-- ##文件拥有组权限
group:westos:— ##特殊指定的用户组的权限
mask::rw- ##能够赋予特殊用户和特殊用户组的最大权限阀值
other::r-- ##其他人的权限
注意:
“当文件权限列表开启,不要用ls -l 的方式来读取文件的权限”
acl列表的控制
- setfacl -m u:lee:rw westosfile #改变文件所有人为lee并且权限为读写
- setfacl -m g:westos:rw westosfile#改变文件所有组为westos并且权限为读写
- setfacl -m u::rwx westosfile#设定文件所有人为超级用户并且权限全开
- setfacl -m g::0 westosfile#设定文件所有组为超级用户并且权限为0
- setfacl -x u:lee westosfile ##删除列表中的lee
- setfacl -b westosfile #关闭列表