Linux的权限管理操作
在Linux中分别有读、写、执行权限:
读权限:
对于文件夹来说,读权限影响用户是否能够列出目录结构
对于文件来说,读权限影响用户是否可以查看文件内容
写权限:
对文件夹来说,写权限影响用户是否可以在文件夹下“创建/删除/复制到/移动到”文档
对于文件来说,写权限影响用户是否可以编辑文件内容
执行权限:
对于文件来说,特别脚本文件。执行权限影响文件是否可以运行。
2、身份介绍
Owner身份(文件所有者,默认为文档的创建者)
Group身份(与文件所有者同组的用户)多个团队在同一台主机上开发资源的时候。
Others身份(其他人,相对于所有者与同组用户)
Root用户(超级用户)
3、Linux的权限介绍
#ls -l 路径 【ls -l 等价于ll】
Linux中存在用户(owner)、用户组(group)和其他人(others)概念,各自有不同的权限,对于一个文档来说,其权限具体分配如下:
-rwxr-xr-xuser1user1timeFILENAME
文件类型拥有者的权限所属组的权限其他人的权限拥有者属组最后修改时间对象
十位字符表示含义:
第1位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软连接”、“s表示套接字”、“c表示字符设备”、“b表示块状设备”等等;
第2-4位:表示文档所有者的权限情况,第2位表示读权限的情况,取值有r、-;第3位表示写权限的情况,w表示可写,-表示不可写,第4位表示执行权限的情况,取值有x、-。
第5-7位:表示与所有者同在一个组的用户的权限情况,第5位表示读权限的情况,取值有r、-;第6位表示写权限的情况,w表示可写,-表示不可写,第7位表示执行权限的情况,取值有x、-。
第8-10位:表示除了上面的前2部分的用户之外的其他用户的权限情况,第8位表示读权限的情况,取值有r、-;第9位表示写权限的情况,w表示可写,-表示不可写,第10位表示执行权限的情况,取值有x、-。
权限分配中,均是rwx的三个参数组合,且位置顺序不会变化。没有对应权限就用– 代替。
例如:以下一个文档权限是怎么样的?
二、权限设置(重点)
语法:#chmod 选项权限模式文档
注意事项:
常用选项:
-R:递归设置权限 (当文档类型为文件夹的时候)
权限模式:就是该文档需要设置的权限信息
文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。
注意点:如果想要给文档设置权限,操作者要么是root用户,要么就是文档的所有者。
1、字母形式
给谁设置:
u:表示所有者身份owner(user)
g:表示给所有者同组用户设置(group)
o:表示others,给其他用户设置权限
a:表示all,给所有人(包含ugo部分)设置权限
如果在设置权限的时候不指定给谁设置,则默认给所有用户设置
权限字符:
r:读
w:写
x:表示执行
-:表示没有权限
权限分配方式:
+:表示给具体的用户新增权限(相对当前)
-:表示删除用户的权限(相对当前)
=:表示将权限设置成具体的值(注重结果)【赋值】
提示:当文档拥有执行权限(任意部分),则其颜色在终端中是绿色。
#chmod ug=rwx 形式,如果有两部分权限一样则可以合在一起写的
等价于:
#chmod u=rwx,g=rwx
[if !supportLists]2、[endif]数字形式
读:r 4
写:w 2
执行:x 1
没有任何权限:0对应---
例如:需要给anaconda-ks.cfg设置权限,权限要求所有者拥有全部权限,同组用户拥有读执行权限,其他用户只读。
所有者权限= 全部权限= 读+ 写+执行= 4 + 2 + 1 = 7
同组用户权限= 读权限+ 执行权限= 4 + 1 = 5
其他用户权限= 读权限= 4
注意:在写权限的时候千万不要设置类似于上面的这种“奇葩权限”。如果一个权限数字中但凡出现2与3的数字,则该权限有不合理的情况。
在Linux中,如果要删除一个文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除。
三、属主(zhu)与属组(zu)设置
属主:所属的用户(文件的主人),文档所有者
属组:所属的用户组
之所以需要设置这个:如果有时候去删除某个用户,则该用户对应的文档的属主和属组信息就需要去修改(类似离职之前的工作交接)。
1、chown
作用:更改文档的所属用户(change owner)
语法:#chown -R 新的username 文档路径
-R:表示选项 文件不需要-R
目录需要加-R
2、chgrp(了解)
作用:更改文档的所属用户组
语法:#chgrp -R groupname 文档的路径
语法:#chown -R username:groupname 文档路径
文件的特殊权限:suid sgid
1、SUID(set uid设置用户ID):限定:只能设置在二进制可执行程序上面。对目录设置无效
功能:程序运行时的权限从执行者变更成程序所有者的权限
2、SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置
功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会,继承上级目录的所属组
SUIDSGID
u+s或u=4g+s或g=2
SUID属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。使用”ls -l” 或者”ll” 命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的”s”,就表明该执行文件拥有SUID属性。
SGID:
限定:既可以给二进制可执行程序设置,也可以给目录设置。
功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限。
实战:文件扩展权限ACL
扩展ACL:access control list
例:设置用户yw对文件a.txt拥有的rwx权限 ,yw不属于a.txt的所属主和组,yw是other