一、权限对象
1、owner:文件拥有者
2、group:用户组:
3、others:非文件拥有者,或者是用户组以外的人,其他人
二、权限类型 rwx
r-x r-x r-x 555
属主 属组 其他人
r w x r w x r w x
4 2 1 4 2 1 4 2 1
7 7 7
基于UGO,user group other 9位
664 644 755 700 600
三、 3、 r w x
对于文件而言
r:可以获取文件的数据
w:可以修改文件的数据
x:可以将此文件运行成为进程
对于目录而言
r:可以使用ls命令获取目录下的文件列表
w:可以修改此目录下的文件列表,可以创建或者删除文件
x:可以cd到此目录下,并且可以使用ls -l来获取文件的详细属性信息
四、文件权限判断逻辑
1、删除文件:对文件所在目录有W权限
判断用户的身份,用户以什么身份去删除文件,owner--->group--->others
如果是目录的属主:目录权限位的左三位需要有w权限,若有则成功,无则失败
如果不是目录的属主,是属组,目录权限位中三位需要有w权限,若有则成功,无则失败
如果是其他人,目录权限位中的右三位需要有w权限,若有则成功,无则失败
2、新建,和删除一样的逻辑
五、权限管理类命令
#1、chmod:改变一个或多个文件的访问权限
-R,递归修改
三类用户
u:属主
g:属组
o:其他
a:所有
赋权表示法:rwx
u=
g=
o=
a=
授权表示法
u+,u-
g+,g-
o+,o-
a+,a-
chmod 777 file
2、chown:修改某个目录或文件的用户名和用户组
-R:递归修改
修改的属主,一并修改属组
修改file文件的属主以及属组:
chown owner:group file
修改lile的属主:
chown root file
修改;file的属组
chown :root file
-R:递归修改
3、chgrp:修改文件的属组
仅管理员可以修改文件的属主和属组
修改file的属组: chgrp group file
-c:当发生改变时输出调用信息
-f:不显示错误信息
-R:处理指定目录以及其子目录下的所有文件
-v:运行时显示详细的处理信息
--dereference:作用于符号链接的指向,而不是符号链接本身
复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件的属组为jerry,
并让属组对目录本#身拥有写权限
六、 进程的安全上下文:
进程对文件访问权限的应用模型
进程的属主,与文件的属主是否相同,如果相同,则应用属主权限
否则,检查进程的属主是否和文件的属组相同,如果相同,则应用属组的权限
否则,使用other权限。
将一个文件运行成为一个进程,取决于用户是否对这个文件有x权限,可执行权限
七、ACL: 允许向文件细化的权限
1、 功能:
1、针对用户设置权限
2、针对用户组设置权限
3、子文件或者子目录继承父目录的权限
子文件中有 + 则继承了父类权限,反之则没有继承
2、setfacl命令:设置个别用户的权限
# setfacl -m u:nebula:rw aclfile
-m:配置acl
-x:删除acl参数
-b:移除所有的ACL权限
-R:递归配置
d:目录专有
3、getfacl:查看文件的权限
getfacl 文件名
权限掩码:umask,chmod
chmod 222 umask=222 555
文件默认权限: 凡是减的结果中有执行权限,需要加1
666-umask 644
目录的默认权限:
777-umask 755
八、特殊权限:
增加权限方式:
u+s
g+s
o+t
注意:原本权限位有执行权限时,用小写字母,否则用大写字母
1、SUID 权限是在属主的x位上 出现s S
A、仅仅对二进制程序有效
B、执行者对于程序需要具有可执行权限
C、仅仅在执行程序的过程中有效, 程序----->进程
D、执行者将具有该程序的拥有者的权限
2、SGID 权限是在属组的x位上,出现s S
1、对二进制程序有效
2、执行者对于程序需要具有可执行权限
3、执行者将具有该程序的属组的权限
4、SGID主要作用于目录:在此目录下创建新的文件时,
新的文件的属组和目录的属组相同
3、SBIT 针对other,/tmp,在执行权限权限位出现t T
1、只针对目录有效
2、用户在此目录下创建的文件或者目录,只有用户自己和root有权限删除