一、权限查看及读取
1.权限查看
ls -l file
##查看文件权限
ls -ld dir
##查看目录权限
2.权限的读取
“文件的属性被叫做文件的元数据(meta data)”
“一种元数据用一个bytel来记录内容”
1)文件权限信息
-rw-r--r--. 1 root root 0 Apr 9 01:39 file
- | rw- r–r-- | . | 1 | root | root | 0 | Apr 9 01:39 | file |
---|---|---|---|---|---|---|---|---|
文件类型 | 用户权限 | 系统的selinux开启 | 文件内容被系统记录的次数(硬链接个数)/目录中子目录个数 | 文件拥有者 | 文件拥有组 | 文件内容大小/目录中子文件的元数据大小 | 文件内容被修改的时间 | 文件名称 |
2)【文件类型】
- 普通文件
d 目录
l 软链接
b 快设备
c 字符设备
s socket 套接字
p 管道 |
二、普通权限的类型及作用
1.用户对文件的身份
u: #user 文件的拥有者,ls -l 看到的第五列信息
g: #group 文件拥有组, ls -l 看到的第六列信息
o: #other 既不是拥有者也不是拥有组成员的其他用户的通称
2.权限位
r w x | r - - | r - - |
u g o
3.用户身份匹配
user(拥有者)>group(拥有组)>other(其他人)
4.权限类型#
- #权限未开启
r #可读
# 对于文件:可以读取文件内容
# 对于目录:可以ls列出目录中的文件
w #可写
#对于文件:可以更改文件内容
#对于目录:可以在目录中新建或者删除文件
x #可执行
#对于文件:可以用文件名称调用文件内记录的程序
#对于目录:可以进入目录中
三、设定普通权限的方法
1.chmod 设定权限
chmod --reference=test1 test2/linux ##复制test1上目录上的权限到test2/linux上
chmod -R --reference=test1 test2/linux ##复制test1目录的权限到test2/linux及目录中的子文件上 -R 表示递归
2.chmod字符方式设定权限
chmod < a | u | g |o> < + |- | = > < r |w |x>
设定
chmod u+x test/testfile
chmod u=rwx,g=rx,o=--- test/testfile
chmod a+r test/testfile ##设置所有用户权限
chmod -R u=rwx,g=rx,o=--- test/testfile ##递归设置目录及目录中所有文件的权限
递归设置目录及目录中所有文件的权限
3.chmod数字方式设定权限
权限波尔指表示方式
rwx = 111
— = 000
rwx=111=7
rw-=110=6
r-x=101=5
r–=100=4
-wx=011=3
-w-=010=2
-wx=001=1
–x=000=0
chmod 600 test/testfile
四、系统默认权限设定
系统本身存在的意义共享资源,从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放,把不安全的权力默认保留
1.如何保留权利
umask`表示系统保留权力
umask ## 查看保留权力
umask 权限值 ##临时设定系统保留权力
文件的默认权限 = 777 -umask -111
目录的默认权限 = 777 -umask
umask值越大,系统安全性越高
2.umask 值的修改
1.临时设定
umask 077
2.永久设定
vim /etc/bashrc ##shell系统配置文件
vim /etc/profile ##系统环境配置文件
sourse /etc/bashrc ##使更改的内容立即生效
sourse /etc/profile
五、文件用户和用户组的管理
chown username file ##更改文件拥有者
chgrp groupname file ##更改文件拥有组
chown username:groupname file ##同时更改文件的拥有者和拥有组
chown -R user dir ##更改目录本身及目录中内容的拥有者
六、特殊权限
1.stickyid 粘制位
#针对目录: 如果一个目录stickyid开启,那么这个目录中的文件只能被文件所有人删除
设定:
- chmod 1777(原文件权限) dir ## 开启dir目录的t权限
- chmod o+t dir ## 开启dir目录的t权限
2.sgid 强制位
#针对目录:目录中新建的文件自动归属到目录的所属组中
#只针对二进制的可执行文件(c程序):当运行可执行文件时都是用文件**拥有组**身份运行,和执行用户无关
设定:
- chmod 2777(原文件权限) dir
- chmod g+s dir
3.suid 冒险位
#只针对二进制的可执行文件(c程序):当运行可执行文件时都是用文件**拥有者**身份运行,和执行用户无关
设定:
- chmod 4777(原属性)file
- chmod u+s file
七、acl权限列表
Aiccess Control Lists ##访问控制列表
- 功能:在列表中可以设定特殊用户对特殊文件有特殊权限
1.acl列表开启标识
没有"+"代表acl列表未开启,有则代表开启
2.acl列表权限读取
注:当文件权限列表开启,不要用ls -l 的方式来读取文件的权限”
getfacl filename
file: filename #文件名称
owner: root #文件拥有者
group: root #文件拥有组
user::rw- #文件拥有者权限
user:qyq:rw- #特殊指定用户权限
group::r-- #文件拥有组权限
group:erqian:--- #特殊指定的用户组的权限
mask::rw- #能够赋予特殊用户和特殊用户组的最大权限阀值
other::r-- #其他人的权限
3.acl列表的控制
setfacl -m u:qyq:rw filename #设定
setfacl -m g:qyq:rwfilename
setfacl -m u::rwx filename
setfacl -m g::0 filename
setfacl -x u/g:qyq filename ##删除
setfacl -b filename #关闭控制
注:acl 权限优先级
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
4.acl mask 控制
mask 是能够赋予指定用户权限的最大阈值
当设定为文件的acl列表之后用chmod缩小了文件拥有组的权利,mask会发生变化。 mask值最多为r–,所有lee所有组的rwx权限只有r能执行
acl 列表的默认权限
setfacl -m u:lee:rwx dir
只对于dir目录本身生效
setfacl -Rm u:lee:rwx dir
对于dir目录和目录中已存在的内容生效
以上的命令之针对已存在的文件生效,新建文件是不会被设定的
setfacl -md: u:lee:rwx dir/
针对dir目录中新建文件生效
八.attr权限——attr权限限制所有用户
i 不能作任何的更改
a 能添加不能删除
lsattr dir|file
查看attr权限
chattr +i|+a|-i|-a dir|file
设定attr权限
给file1 文件加上i之后不能被删除,去除i之后可以删除。