linux中权限管理
权限的描述:
权限的意思就是用户拥有的对系统支配能力的大小在Linux中是严格控制用户权限的,不同的用户给予不同的权限,权限应遵循能少给就尽量少给的原则从而增加系统的安全性。
进程安全上下文:
进程对问件访问权限的应用模型:进程的属主与文件的属主是否相同,如果相同,则应用属主权限,如果不同 则去检测进程的属主是否与文件的属组相同如果相同,应用属组权限,否则就只能应用other权限。
Linux中权限划分:
按照针对的对象可分为:
user:属主
group:属组
other:其他人
示例:
在看到的 rw-r--r-- 中:左三位定义了user权限
中三位定义了group权限
右三位定义了other权限
按照可执行的操作分为:
r:read 读
w:write 写
x:excute 执行
按照对文件和目录的执行结果不同划分:
r:read |
w:write | x:excute | |
文件 | 可以查看文件的的内容 | 可以对文件的内容进行修改 | 可将此文件运行为进程 |
目录 | 可以列表查看目录 | 可以对目录内的文件和子目录修改、删除也可添加 | 能cd切换到此目录作为工作目录 |
权限的组合机制:
权限位 二进制 八进制
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
权限的管理命令:
chmod 命令
格式1:赋权、授权表示法
chmod [ugoa][+-=][rwx]文件...
u、g、o、a分别代表:属主、属组、其他人、所有人
+:在原来权限的基础上增加权限
-:在原来权限的基础上去除权限
=:直接定义权限
r、w、x:读、写、执行
X权限:加x权限到目录上,而不给文件加,数字表示法不支持
当执行所有人统一修改权限时,a可省略,但加w权限时除外(如图最后一条命令)
示例:
格式2:八进制表示法
chmod nnn 文件...
nnn表示八进制数,每个n分别代表对应的rwx(权限位)的组合的和
r=4
w=2
x=1
第一个n代表属主
第二个n代表属组
第三个n代表其他人
示例:
格式3:
chmod --reperence=文件1 文件2 // 以文件1的权限为标准修改文件2的权限
示例:
chmod命令的选项:
-R :递归修改目录的权限,当执行-R选项时,会把目录及其目录里的文件、子目录的权限一并修改。
示例:
从属关系的管理命令: chown、chgrp
chown命令只有root用户可以执行;chgrp命令root可执行,文件的所有者也可以执行,不过只能修改为所有者所属的组。 chown命令:
格式1 chown [OPTION] ..[OWNER]:[GROUP] FILE ....
可修改文件或目录的属主、属组,也可二者同时修改
示例:
chown [OPTION] .. --reference=RFILE FILE ...
把RFILE的从属关系赋值给FILE,
示例:
chown命令的选项:
-R:递归修改目录的从属关系,当执行-R选项时,会把目录及其目录里的文件、子目录的从属关系一并修改。
chgrp命令:对所属组进行更该与chown 用法一致
特殊权限:SUID SGID sticky
对文件或目录加上特殊的权限以实现某些特殊的需要
对应的八进制数:
SUID = 4
SGID = 2
sticky = 1
介绍:
SUID
当给一个可执行的程序添加SUID权限时,如果此二进制程序的属主有可执行权限,则权限位x位上显示s(显示s,但x权限并没有删除,只是做了隐藏),当其他用户执行此二进制程序时,将以属主身份执行,如果属主对此二进制程序没有可执行权限,则权限位x位上显示S。
用法:
格式1: chmod u+s 二进制程序
格式2: chmod nnnn 二进制程序
第一个n就代表特殊权限位
SGID:
作用于二进制文件时,与SUID用法一致,
chmod g+s 可执行程序
当作用于目录时,该目录内再新建文件或目录的所属组自动继承该目录的所属组。
chmod g+s 目录
sticky:粘滞位,只能作用于目录,占据other的执行权限位
作用:执行后,目录里的文件或目录将会受到保护,这些文件或目录只能由root用户和文件、目录的拥有者来进行管理。其他人无权修改删除。
chattr 命令;锁定文件
应用场景:当有一些文件特别重要,害怕被误删出时,可以用到,这只是一个方面。
用法:
选项:
+i:锁定后的文件将不能删除、改名、更改
-i:解锁+i的锁定
+a:锁定后的文件只能增加
-a:介绍+a的锁定
lsattr命令:可以查看chattr的锁定情况
示例:
访问控制列表:
ACK:实现灵活的权限管理
设置命令: setfacl
格式:setfacl -m u/g:用户/组:权限 文件/目录
设置用户或组对文件或目录的ACL权限
u:属主 g:组 d:默认设置
与常用选项的组合:
setfacl -m u:zhang:rw f1 //设置zhang用户对f1文件的acl访问权限为rw
setfacl -x u:zhang f1 //取消zhang用户对f1文件的acl访问权限
setfacl -b f1 //清除所有ACL设置
setfacl -m d:zhang:rw 目录 //d 选项为默认设置,设置新建的文件或目录机子文件都设上ACL权限(只针对于目录)
setfacl -k 目录 //删除默认ACL设置
查询ACL设置命令:getfacl 文件/目录
示例:
[root@myhost testdir]# setfacl -k dir
[root@myhost testdir]# getfacl dir
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x