###1.权限查看及读取###
权限查看
ls -l wetsos ##查看文件权限
ls -ld westosdir ##查看目录权限
权限的读取
"文件的属性被叫做文件的元数据(meta data)"
"一种元数据用1个byte来记录内容"
#文件权限信息#
① - |② rw-r–r-- |③ . |④ 1 | ⑤ root |⑥ root |⑦ 0 |⑧ Apr 12 10:57 |⑨ westos#目录权限信息#
d | rw-r–r-- | . | 2 | root | root | 0 | Apr 12 10:57 | dir
对于每一位的解释
[1] ##文件类型
#- 普通文件
#d 目录
#l 软连接
#b 快设备
#c 字符设备
#s socket套接字
#p 管道 |[2] ##用户权限
##rw- |r– |r–
# user group other[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.设定普通权限的方法###
文件及目录所有人和所有组的更改
chown改文件
chgrp 改目录
在改目录时,想要同时更改目录内的文件信息需要加-R
使用字符的方式设定权限
chmod <a|u|g|o> <+|-|=> <r|w|x> file1
chmod u+rw,g+r,o-wx file2 ##添加或取消文件权限
chmod a=rx file3 ##文件任意权限都赋予读和执行权限
使用三位二进制数字修改权限
X=1 ;W=2 ;R=4
— 000 0
–x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
###4.系统默认权限设定###
系统本身存在的意义是共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放
把不安全的权力默认保留
umask 表示系统保留权力
umask ##查看保留权力
umask 权限值 ##临时设定系统预留权力777-umask-111=644 ##得到文件默认权限
777-umask ##得到目录默认权限umask 070
##临时设定070的预留权限
##预留越多,权限提升,安全性越高 (程序关闭,设定会被遗忘)
永久更改权利
vim /etc/profile ##系统环境配置文件
vim /etc/bashrc ##shell系统配置文件,(74-77行)-gn ##初始组名字 -un ##用户名字
002 ##普通用户umask (60行) 022 ##超级用户umask (62行)注: 修改后:
source /etc/profile ##使设定生效
source /etc/bashrc ##source作用时使我们更改的内容立即被系统识别
###5.特殊权限###
stickyid 粘制位
##如果一个目录stickyid开启,那么这个目录中的文件
##只能被文件所有人删除chmod 1原始权限 dir
chmod o+t dir
实例:
sgid 强制位
##针对目录:目录中新建的文件自动复制目录的所有组
chmod 2源文件权限 dir
chmod g+s dir ##修改test目录所有组,test目录下文件的所有组也会改变
实例:
suid 冒险位
权利下放原理:当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
如任何人可以看系统中的任何文件,指定当前为root(与执行文件者无关)
用处:用户权利的提升和下降
只针对二进制可执行文件(c程序)
which cat
ls -l /bin/cat
chmod u+s /bin/cat ##任何人执行文件时都是以文件的所有人身份
ls -l /bin/cat
chmod 4原属性 /bin/cat ##755=777-022 4=100
ls -l /bin/cat
chmod g+s /bin/cat ##任何人执行文件时都是以文件的所有组身份
ls -l /bin/cat
rm -fr file2 ##无法删除,所有人仍为普通用户
/root/rm -fr file ##身份为超级用户,可以任意删除
ps ax -o user,group,comm | grep cat ##扫描,后台运行,所有进程的用户组和名字。管道符号,过滤cat命令
watch -n 1 "ps ax -o user,group,comm | grep cat" ##监控命令
###6.ACL权限列表###
Access Control Lists #访问控制列表
##功能:在列表中可以设定特殊用户对特殊文件有特殊权限
acl列表权限读取
#file:westosfile ##文件名称
#owner:root ##文件拥有者
#group:root ##文件拥有组
user::rw- ##文件拥有者权限
user:westos:rw- ##特殊指定用户权限
group::r-- ##文件拥有组权限
group:westos:— ##特殊指定的用户组的权限
mask::rw- ##能够赋予特殊用户和特殊用户组的最大权限阀值
other::r-- ##其他人的权限注意:
“当文件权限列表开启,不要用ls -l 的方式来读取文件的权限”
acl列表的控制
setfacl -m u:lee:rw test ##改变文件所有人为lee并且权限为读写
setfacl -m g:westos:rw test ##改变文件所有组为westos并且权限为读写
setfacl -m u::rwx test ##设定文件所有人为超级用户并且权限全开
setfacl -m g::0 test ##设定文件所有组为超级用户并且权限为0
setfacl -x u:lee test ##删除列表中的lee
setfacl -b test ##关闭列表
acl 权限优先级
权限优先级:拥有者>特殊制定用户>权限多的组>权限少的组>其他>
acl mask 控制
mask是能够赋予指定用户的最大阀值
mask是文件权限的总开关
当设定完毕文件的acl列表之后用chmod缩小了,文件拥有组的权力,mask会发生变化
acl列表的默认权限
setfacl -m u:westos:rwx /test 只对该目录本身生效,对文件不生效
setfacl -Rm u:westos:rwx /test 目录中的文件一并修改
setfacl -m d:westos:rwx /test 针对目录中新建文件生效
###7.attr权限###
用于限制所有用户,包括root
lsattr dir|file ##查看attr权限
chattr ±i|±a dir|file ##设定attr权限a #能添加权限不能删除
i #不能作任何修改