目录
1、文件权限相关1.1、相关概念
è定义:一个用户(或组)针对一个目录或则文件具备哪些样的操作权限。
è身分:一个用户对于一个文件或则目录而言,是一个哪些样的角色。
è身分分类:
文件的所有者(拥有者)owner
所属的同组用户group
其他人other
è权限:
r:Readable可读——能够读取文件或则目录内容的权限,用八补码数字4表示
w:Writeable可写——能够更改文件或则目录的内容,用八补码数字2表示
x:Executable——针对文件而言,x叫可执行;针对目录而言,x是否就能成为一个用户的工作目录(简而言之就是能不能cd切换进去),用八补码数字1表示
tips:
root用户是超级管理员,但root组是普通组创建一个新文件或目录时,这个文件或目录的拥有者和拥有组,分别是创建这个文件的用户和这个用户的主要组。对于文件的权限设定:r表示可读取文件内容w表示可更改文件内容x表示文件可执行对于目录的权限设定:
r表示可用ls命令查看目录下的文件列表
w表示可在目录下创建、删除文件
x表示可以通过cd命令步入目录
1.2、chmod命令(权限更改)
记号法:rwx
数值法:r→4w→2x→1,每位位置的数字为赋于的权限和(八补码)。
1.3、chown(改所有者/所属组)chgrp(改所属组)-à身分更改
>>改所有者chowntest1
>>改所属组chown:test1=chgrptest1=chown.test1
>>同时更改所有者和所属组chowntest1:test1=chowntest1.test1
>>递归更改(对目录生效)chown/chgrp-R
1.4、默认权限和反网段umask
默认权限
一个目录的创建权限等于:满权限(777)-umask值,即777-022=755
一个文件的创建权限等于:满权限(666)-umask值,即666-022=644
注意:基于系统安全考虑,Linux系统默认文件一开始不能有执行权限。
反网段
>>为什么创建文件夹时权限755,创建文件时权限644?是由于有一个默认属性在起作用,即umask(反网段)
>>root用户和普通用户的反网段值不一样的(查看/etc/profile文件)
UID>=200:0002
UID<200:0022
>>更改umask值:
a、临时更改:umaskXXX
b、永久更改:vim/etc/profile,更改后须要source/etc/profile以后永久生效。
1.5、特殊权限位(SUID/SGID/Stickybit)1.5.1、SUID
普通用户能不能更改自己的密码?(能)
更改密码linux替换文件命令,最终是更改那个文件(/etc/shadow)
既然无权限中标麒麟linux,普通用户是如何把密码写进去的呢?这儿要瞧瞧普通用户更改密码执行的是那个二补码文件(passwd)。
普通文件:rwx带SUID的文件:rws
SUID:当一个s权限出现在文件所有者的x位上
作用:当一个普通用户(如student)去执行一个带有SUID的二补码文件(passwd),这么这个用户(student)在执行过程中,会暂时获得这个二补码文件(passwd)的拥有者(root)的权限,后续操作例如更改密码(passwd)的时侯,会拿着(root)这个拥有
者的身分去执行,这个操作仅针对二补码文件生效。
原理:普通用户执行passwd→/etc/shadow→root身分去执行更改密码操作
Tips:假如是rwS,则本身文件是没执行权限的,仅仅获得了SUID功能而已,SGID同样适用。
操作方式:chmodu+sfilename(chmod4XXXfilename)
1.5.2、SGID
SGID:当一个s权限出现在所属组的x位上
1)针对二补码文件:文件执行过程中获取文件属组的权限。
2)针对目录:
默认情况下,我们新建一个文件或目录的时侯linux运维博客,它的属组是当前用户的初始组。
加上SGID以后,其下新建的目录及文件会承继该目录的所属组。
操作方式:chmodg+sfilename/dirname(chmod2XXXfilename/dirname)
1.5.3、Stickybit(粘滞位)
Stickybit:仅对目录生效,若该目录其他人的执行权限出现了t,这么该目录下的子文件或目录,仅文件夹所有者及root用户能删掉。
tips:
粘滞位权限只能针对目录设置linux替换文件命令,对于文件无效。设置了粘滞位权限的目录,使用ls命令查看其属性时,其他用户权限处的“x”将变为“t”,起初没有x执行权限则会被写成"T"
操作方式:chmodo+tdirname(chmod1XXXdirname)
超级权限数值法:suid4XXX/sgid2XXX/stickybit1XXX
1.5.4、写保护特殊权限(硬写保护+i和软写保护+a)
操作方式:
更改命令:chattr+i/+afilename
查询命令:lsattrfilename
+i:硬写保护,只能读不能写,不能删掉
+a:软写保护,只能读不能写,不能删掉文件及其原有内容,并且能通过重定向追加更新内容。
2、使用ACL控制对文件的访问
使用的功能:文件访问控制列表(FileAccessControlList)
存在必要,诱因之一默认的身分不够用
需求:
1、为了安全,不容许更改owner、group
2、两组用户,group1跟group2对文件的权限须要设置不同
2.1、查看(getfacl命令)
#getfaclfilename/dirname
2.2、设置(setfacl命令)
参数解析:
-m,--modify-acl修改文件的访问控制列表
2.2.1、针对文件:(前面的rwx也可以替换成八补码数字0-7)
2.2.2、针对目录
无递归情况下,FACL仅对当前目录生效:
若采用递归设置(加上-R参数),则对子目录以及子文件同样生效:
递归情况下:
-->使用rwx:文件默认的mask(最大权限网段)会按照所设的权限弄成rwx
-->使用rwX:默认的mask(最大权限网段)不变,遵守默认权限设置(文件夹rwx,文件rw-)
对于特定组的权限设置:setfacl-mg:test4:rwxdir1
2.3、删除FACL记录
参数解释:
-x,--remove=acl按照文件中访问控制列表移除条目
-b,--remove-all删掉所有扩充访问控制列表条目
10.3.1、删除单挑FACl记录(setfacl-xu/g:用户名/组名文件名/目录名)
10.3.2、删除所有FACL记录(setfacl-b文件名/目录名,-R代表递归)
10.4、mask(最大权限网段)
命令格式
#setfacl-mm::权限文件名/目录名
10.5、default(默认权限:仅针对于文件夹)
参数解释
-k,--remove-default移除默认访问控制列表
#setfacl-Rmd:u/g:名子:权限目录名
删掉默认权限:setfacl-k目录名