1.权限存在的意义及权限的读取
文件权限是系统最底层安全设定方法之一,它保证文件可以被可用的用户做相应操作
"文件的属性被叫做文件的元数据(meta data)"
"一种元数据用1个byte来记录内容"
2.权限的查看及读取
2.1权限的查看
ls -l file | 查看文件权限 |
---|---|
ls -ld dir | 查看目录权限 |
命令演示:
2.2权限信息
[1]:文件类型
- | 普通文件 |
---|---|
d | 目录 |
l | 软连接 |
b | 快设备 |
c | 字符设备 |
s | socker套接字 |
p | 管道 |
[2]:用户权限
rw- | r-- | r-- |
u g o
用户身份匹配:u > g >o
u:用户权限
g:用户组权限
o:其他用户权限
r | 读 |
---|---|
w | 写 |
x | 执行 |
- | 权限未开启 |
[3]:系统的selinux开启
" . "表示selinux火墙已经开启
[4] :对于文件:文件内容被系统记录的次数(硬链接个数)
对于目录:目录中子目录的个数
[5]:文件拥有者
root:表示超级用户
[6]:文件拥有组
root:表示超级用户
[7]:对于文件:文件内容大小
对于目录:目录中子文件的元数据大小
[8]:文件内容被修改的时间
[9]:文件名称
3.设定普通权限的方法
chmod :设定文件权限
3.1 chmod 复制权限
chmod --reference=/tmp /root/Desktop/xue
复制/tmp 上的权限到 /root/Desktop/xue中
chmod -R --reference=/tmp /root/Desktop/xue
复制/tmp 上的权限到 /root/Desktop/xue中及目录中的子文件上
-R表示递归操作
3.2 chmod 字符方式设定权限
chmod <a|u|g|o> <+|-|=> <r|w|x> file 用字符方式设定文件权限
命令演示
3.3 chmod 数字方式设定权限
111 | r w x | 7 |
---|---|---|
110 | r w - | 6 |
101 | r - x | 5 |
100 | r - - | 4 |
011 | - w x | 3 |
010 | - w - | 2 |
001 | - - x | 1 |
000 | - - - | 0 |
命令演示:
4.系统默认权限设定
系统本身存在的意义:共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放
把不安全的权力默认保留
4.1如何保留权利
4.1.1umask表示系统保留权力
umask | 查看保留权利 |
---|---|
umask 权限值 | 临时设定系统保留权力的大小 |
4.1.2umask的查看和临时设定
文件默认权限 = 777-umask-111
目录默认权限 = 777-umask
umask值越大系统安全性越高
4.1.3 umask的永久修改
vim /etc/bashrc shell系统配置文件
vim /etc/profile 系统环境配置文件
注意:系统配置里面设置的数值为多少环境配置里面也设置多少
source /etc/profile source作用是使我们更改的内容立即被系统识别
source /etc/bashrc
5.文件用户和用户组管理
chown username file | 更改文件拥有者 |
---|---|
chgrp groupname file | 更改文件拥有组 |
chown username : groupname file | 同时更改文件的拥有者和拥有组 |
---|---|
chown |chgrp -R user |group dir | 更改目录本身及目录中内容的拥有者或者拥有组 |
6.特殊权限
6.1 stickyid 粘制位
针对目录: 如果一个目录stickyid开启,那么这个目录中的文件
只能被文件所有人删除
目的:只有自己可以删除自己的东西
解决办法:
chmod 1原始权限 dir
chmod o+t dir
实验 步骤:
mkdir /pub
chmod 777 /pub
su - westos ----> touch /pub/westosfile
exit
su - xuepang--------> touch /pub/lxuepangfile
rm -fr /pub/xuepangfile 可以删除
rm -fr /pub/westosfile 不属于自己的文件也可以删除
如何解决此问题:
chmod 1777 /pub
chmod o+t /pub
以上两条命令都可以开启pub目录的t权限
su - westos ----> touch /pub/westosfile
exit
su - lee --------> touch /pub/leefile
rm -fr /pub/xuepangfile 可以删除
rm -fr /pub/westosfile 不属于自己的文件不能删除
rm: cannot remove ‘westosfile’: Operation not permitted
命令演示:
6.2 sgid 强制位
针对目录: 目录中新建的文件自动归属到目录的所属组中
目的:使新建的所有组和目录组同步
解决办法:
chmod 2源文件权限 dir
chmod g+s dir
实验 步骤:
mkdir /mnt/westosdir
chmod 777 /mnt/westosdir
chgrp westostest /mnt/westosdir
watch -n1 ls -lR /mnt
root —> touch /mnt/westosdir/file 是谁建立的文件组就是谁的
chmod g+s /mnt/westosdir
root —> touch /mnt/westosdir/file1 file1自动复制了/mnt /westosdir目录组
命令演示:
只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有组身份运行,和执行用户无关
6.3 suid 冒险位
只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
解决办法:
chmod 4源文件权限 dir
chmod u+s dir
7.acl权限列表
Aiccess Control Lists 访问控制列表
acl列表开启标识
没有"+“代表acl列表未开启
有”+"代表acl列表功能开启
7.1 acl列表的权限读取
getfacl dir/file | 读取文件或者目录权限 |
---|
file : westosfile | 文件名称 |
---|---|
owner: root | 文件拥有者 |
group: root | 文件拥有组 |
user::rw- | 文件拥有者权限 |
user:lee:rw- | 特殊指定用户权限 |
group::r - - | 文件拥有组权限 |
group:westos:- - - | 特殊指定的用户组的权限 |
mask::rw- | 能够赋予特殊用户和特殊用户组的最大权限阀值 |
other::r- - | 其他人的权限 |
"注意:"
"当文件权限列表开启,不要用ls -l 的方式来读取文件的权限"
7.2 acl列表的控制
setfacl -m u:lee:rw dir | 设定 |
---|---|
setfacl -m g:westos:rw dir | 设定 |
setfacl -m u::rwx dir | 设置拥有组权限文rwx |
setfacl -m g::0 dir | 设置所有组权限为0 |
setfacl -m g、o::0 | 设置其他组权限为0 |
setfacl -x u:lee dir | 删除列表中的lee |
setfacl -b dir | 关闭 |
7.3 权限优先级
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
7.4 acl mask 控制
mask是能够赋予指定用户权限的最大阀值
当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力
mask会发生变化
恢复:
setfacl -m m:权限 文件
7.5acl 默认权限
setfacl -m u:lee:rwx dir | 只对于dir目录本身生效 |
---|---|
setfacl -Rm u:lee:rwx dir | 对于dir目录和目录中已经存在的内容生效 |
以上的命令之针对与存在的文件生效,新建文件是不会被设定的
setfacl -m d:u:lee:rwx westosdir/ | 针对与/mnt/westosdir目录中新建文件生效 |
---|
8.attr权限
attr权限限制所有用户
i | 不能作任何的更改 |
---|---|
a | 能添加不能删除 |
lsattr dir|file | 查看attr权限 |
---|---|
chattr +i|+a|-i|-a |file | 设定attr权限 |
chattr -R +i|+a|-i|-a | dir | 设定目录下文件的attr权限 |
注意:查看目录attr权限时要加 - d才可以查看