1文件的类型
-:普通文件
d:目录
l:软链接
b:块设备
c:字符设备
s:soket套接字
p:管道
2用户的权限
r:读取权限:4
w:写权限:2
x:执行权限:1
-:无权限:0
u:文件的所有人
g:文件的所有者
o:其他人
优先级匹配:u>g>o
3系统的selinux开启:当系统的selinux开启后权限显示后边会显示“.”
4对于文件而言:这是文件被系统记录的次数(硬链接个数),硬链接可以使用ln命令添加
ln 创建一个硬链接:硬链接的I节点号相同
4对于目录而言:表示目录中子目录的个数,注意这个数字不算目录中的文件
5文件拥有者:这个文件的所有人,默认为创建这个文件的用户,也可以修改
6文件的拥有组:这个文件的所有组,默认为创建这个文件用户的主组,可以修改
7对于文件:文件内容大小
写入一些内容vim file
7对于目录:目录中的元数据大小
目录下每个有含义的字符串都代表一个元数据,文件名或目录名的每个字符都是一个元数据
8文件距离上次被修改的日期
9文件名
修改文件的所有人和所有组
修改文件的所有人 chown 用户名 文件名
修改文件所有组 chgrp 组名 文件名
修改文件所有人加所有组chown 用户名:组名 文件名
修改目录下所有文件的所有者,所有组chown -R 递归修改
用户权限管理:chmod
例如chmod u+x file:给file文件的所有者执行权限
还可以用数字表示
chmod 760 file:表示给文件所有人读写执行,文件所有组读写,文件其他人无权限
复制权限:chmod --reference=file1 file2 表示将file1的权限复制到file2上,chmod -R --reference=file1 file2目录递归复制
文件的默认权限:umask
查看文件的默认权限命令为umask代表文件创建时权限为777-022-111
777:最大权限
022:系统扣除
111:内核扣除
所以新建文件权限为644
目录的默认权限:umask:系统预留权限,这个值越大系统越安全
代表新建目录的权限为777-022=755
临时修改默认权限:umask 修改后默认权限
例如umask 777表示将系统默认权限改为777,改变默认权限后对新创建的文件生效
永久修改默认权限
想要永久修改默认权限必须在系统的配置文件中修改数值
权限的配置文件一般是系统环境配置文件/etc/profile和shell配置文件/etc/bashrc
直接使用vim修改
修改完毕后用surce命令将两个文件运行一遍,然后默认文件就开始生效
特殊权限
stickyid粘制位:如果一个目录的stickyid开启,那么目录下的文件只能被文件所有者删除:chmod o+t 文件名
实验:在/mnt (/mnt目录普通用户也可以读写执行)下创建一个所有人都可以执行的目录
分别切换至普通用户在目录中建立文件,可以看到这是两个不同用户的文件
用user用户去删除user1用户的文件是可以操作的
开启目录的stickyid
切换至普通用户去删除另一个用户的文件,不能操作
sgid强制位
针对目录:目录中创建的文件自动归属到目录的所属组中:chmod g+s 目录名
针对文件
只针对二进制的可执行文件,当运行文件都是以文件拥有者身份运行,与执行者无关
可以使用watch -n1 “ps ax -o user,group,comm | grep cat”来监控cat的运行信息
chmod g+s 文件名
切换至ws用户运行cat
suid冒险位
chmod u+s 进程文件名以下例子表明任何用户执行cat命令时都相当于超级用户在执行
acl权限列表:Aiccess Contorl Lists:访问控制列表
在列表中可以设置特殊用户对指定文件有权限,有“+代表acl权限开启”
打开acl控制列表:getfacl 文件名/目录名
getfacl file
控制列表含义
1:文件名
2:文件所有者
3:文件所有组
4:文件所有者权限
5:文件特殊用户权限
6:文件所有组权限
7:文件特殊组权限
8:文件能赋予用户权限的最大阀值
9:其他人权限
:
设定用户对文件权限:setfacl -m u:用户名:权限 文件名
例如setfacl -m u:ws:7 file:表示ws用户对file文件权限为读写执行
setfacl -m u::0 file:取消file所有者权限
设置所有组权限:setfacl -m g::rwx file表示file文件所有组对此文件拥有最大权限
setfacl -m g:976:rwx file:表示id为976的组队file文件拥有最大权限
setfacl -x u:用户名 文件名:表示删除acl列表中的特殊用户
setfacl -b 文件名:关闭acl列表
acl权限优先级
拥有者>特殊用户>权限多的组>权限少的组>其他人
acl mask控制:mask是指能赋予给用户最大权限的阀值
当设定完毕文件的acl列表后再用chmod修改文件权限,mask会发生改变
恢复mask:setfacl -m m:权限 文件
acl列表的默认权限:setfacl -m u:用户名:权限 目录名 ,只针对于目录本身生效setfacl -Rm u:用户名:权限 目录名,针对目录本身和目录下已经存在的文件生效,对新创建的文件无效setfacl -m d:u:用户名:权限 文件名: 对目录中的新文件生效
attr权限:attr限制所有的用户,包括root
i:不能做任何的更改
a:可以添加,但不能删除
lsattr 文件名:查看attr权限
chattr:设定attr权限
chattr +i file:任何人都无法更改file
chattr -i file:恢复file 可以更改
chattr +a file:任何人只能更改file 不能删除
chattr -a file:恢复file 可以删除