1.权限查看及读取
权限查看命令 :
ls -l file1 查看文件权限
ls -ld dir1 查看目录权限
权限的读取:
- | rw - r - - r - - | . | 1 | root | root | 0 | oct 8 09:54 | file1
#目录权限信息#
d | rw - r - - r - - | . | 2 | root | root | 6 | oct 8 09:57 | dir1
[1] [2] [3] [4] [5] [6] [7] [8] [9]
2.普通权限的类型及作用
1) 用户对文件的身份
![](https://img-blog.csdnimg.cn/20211008101704240.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oiR54ix5ZCD5aSn6bmF,size_20,color_FFFFFF,t_70,g_se,x_16)
2) 权限位及用户身份匹配
user>group>other
3)权限类型
3.设定普通权限的方法
1)##复制文件权限
chmod --reference=dir1 dir2 ##复制文件权限
复制dir1的权限到dir2上
复制前
复制后
2)chmod -R --reference=/tmp /mnt/westosdir
##复制/tmp目录的权限到/mnt/westosdir及目录中的子文件上,-R代表递归操作
复制前
复制后
3)使用字符的方式设定权限
TEST1 : 将file1的用户组权限修改为rwx
修改之前
修改之后
TEST2 : 将file1的每一位权限都修改为rw
4)使用三位二进制数字修改权限
例如
chmod 754 file1 相当于把file1的权限修改为rwx|r-x|r--
4.系统的默认权限设定
系统本身存在的意义共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放
把不安全的权力默认保留
umask
如何保留权力
umask表示系统保留权力
umask #查看保留权力
umask 权限值 #临时设定系统预留权力
777-022=755-111=644 ##得到文件默认权限
777-umask ##得到目录默认权限
umask 077
临时设定077的预留权限
预留越多,权限提升,安全性越高 (程序关闭,设定会被遗忘)
永久更改umask
vim /etc/profile ##系统环境配置文件 在59-62行
vim /etc/bashrc ##shell系统配置文件 74-77行
其中-gn ##初始组名字 -un ##用户名字
002 ##普通用户umask 022 ##超级用户umask
修改完成之后需要将
source /etc/profile ##使设定生效
source /etc/bashrc ##source作用时使我们更改的内容立即被系统识别
5.文件用户用户组管理
chown username file ##更改文件拥有者
chgrp groupname file ##更改文件拥有组
chown username:groupname file ##同时更改文件的拥有者和拥有组
chown|chgrp -R user|group dir##更改目录本身及目录中内容的拥有者或者拥有组
6.特殊权限
1)stickyid 粘制位
##粘制位(一般针对目录的所有人,防止他人删掉自己文件的不合理行为)
##只能被文件所有人删除
设定: chmod o+t dir
##加特殊权限 chmod 1原始权限 dir
##1为特殊权限位
TEST : wests用户在/pub目录下创建文件,linux用户可以删除
通过增加粘制位,可以防止他人删掉自己的文件
chmod 1777 /pub #开启pub目录的t权限
chmod o+t /pub #均可以开启pub目录的t权限
通过 chmod 777 /pub 关闭t权限
通过 chmod o-t /pub 关闭t权限
root模式下开启t权限之后执行 su - westos ------>touch /pub/westosfile 并exit退出westos
su - lee ------>touch /pub/leefile
rm -fr /pub/leefile #可以删掉
rm -fr /pub/westosfile #不属于lee的文件不能删除
rm:cannot remove ‘westosfile’:Operation not permitted
2)sgid 强制位
针对目录:目录中新建的文件自动复制目录的所属组
设定:
chmod 2源文件权限 dir
chmod g+s dir ##修改sc目录所有组,sc目录下文件的所有组也会改变
TEST : linux和westos用户在/sc下创建文件均属于用户组shengchan
实验:将/sc目录下创建的文件都属于/sc的所有组
mkdir /sc
chmod 777 /sc
chmod g+s /sc
groupadd shengchan
chgrp shengchan /sc # 将/sc 的所有组改为shengchan
watch -n1 ls -lR /sc # 实时监控/sc目录下文件的属性
su - westos
touch /sc/file1
exit
su - linux
touch /sc/file1
exit
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
在root下执行/bin/cat 此时执行人为root
在westos下在执行/bin/cat 此时执行人为root
chmod g+s /bin/cat ##任何人执行文件时都是以文件的所有组身份
ls -l /bin/cat
rm -fr westos111 ##无法删除,所有人仍为普通用户
/root/rm -fr westos111 ##身份为超级用户,可以任意删除
7.ACL访问权限
Access Control Lists
#访问控制列表
#功能:
#在列表中可以设定特殊用户对特殊文件有特殊权限
acl权限列表打开指令:
getfacl westos111
显示内容
#file:westosfile ##文件名称
#owner:root ##文件拥有者
#group:root ##文件拥有组
user::rw- ##文件拥有者权限
user:lee:rw- ##特殊指定用户权限
group::r-- ##文件拥有组权限
group:westos:— ##特殊指定的用户组的权限
mask::rw- ##能够赋予特殊用户和特殊用户组的最大权限阀值
other::r-- ##其他人的权限
注意:“当文件权限列表开启,不要用ls -l 的方式来读取文件的权限”
开启指令:
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 #关闭列表
设置了特殊用户和特殊组之后:
acl 权限优先级
权限优先级:拥有者>特殊制定用户>权限多的组>权限少的组>其他
acl mask 控制
![](https://img-blog.csdnimg.cn/20211008165812564.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5oiR54ix5ZCD5aSn6bmF,size_20,color_FFFFFF,t_70,g_se,x_16)
执行:
setfacl -m m:rw westos111
此时westos111的特殊用户组权限改为r--
mask变为r--,此时虽然lee的权限还显示为rwx,实际上只可读