linux权限管理

一、基本权限

基本权限可以分为r,w,x:可读、可写、可执行。
对于文件来说:
r:可读,表示可以使用类似cat等命令查看文件内容;
w:可写,表示可以编辑或删除此文件;
x:可执行,表示可以命令提示符下当做命令提交给内核运行;
如果r单独存在,可以查看文件内容;w单独存在,看不到文件内容,但是可以强制修改文件内容,会覆盖文件内容,单独存在,意义不大;x单独存在,毫无意义。
对于目录来说:
r:可以对此目录执行ls以列出内部的所有文件;
w:可以在此目录创建文件;
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;
如果只有r权限,可以读(有报错),不能写,也不能进入目录;只有w权限时,毫无意义;只有x权限,只能进入,不能读,不能写。
目录同时具备rw权限:可以查看内容,不可以进入目录,不能删除目录或它里面的文件。
目录同时具备rx权限:可以查看内容,可以进入目录,不可以修改目录的内容。
目录同时具备wx权限:不可以查看目录内容,可以进入目录,可以删除目录下的文件,前提是你需要知道目录下有什么文件。

查看文件的权限可以使用ls -l(ll +文件名),如果是目录需要加上-d选项(ll -d +目录名),否则只显示此目录下有什么文件。

权限针对的三类用户:
u:属主 g:属组 o:其他用户
// ls -l file.txt(ll file.txt)命令显示的意义
linux权限管理
// ll -d wenjian命令显示的意义linux权限管理
第一栏:-rw-r–r--代表这个文件的类型与权限
第一字符所代表的意义有如下:【d】表示是目录;【-】表示是文件;【l】表示为链接文件;【b】表示设备文件里面的可供储存的周边设备(可随机存取设备)【c】表示设备文件里面的序列埠设备,例如鼠标、键盘(一次性读取设备)
接下来的字符三个为一组,且均为“rwx”的三个参数的组合。要注意的是这三个权限的位置不会改变,如果没有权限就会出现-。第一组表示文件拥有者可具备的权限;第二组表示加入从群组中账号的权限;第三组表示非本人且没有加入群组的其他账号的权限。
第二栏:表示有多少文件名链接到此节点
这个属性记录的就是有多少不同的文件名链接到相同的一个inode号码。(硬链接数)
第三栏:表示这个文件或目录的拥有者账号
第四栏:表示这个文件或目录的所属群组
第五栏:表示这个文件的容量大小,默认单位是 Bytes(字节)
1kb=1024b
1mb=1024kb
1gb=1024mb
1tb=1024gb
注意:Byte是字节数,bit是位数,在计算机中每八位为一字节,也就是1byte=8bit。
第六栏:表示这个文件或目录的创建日期或者是最近修改日期
如果这个文件被修改的时间距现在太久,那么只会显示年份而已。
第七栏:表示这个文件的文件名

修改文件的属性和权限
**chgrp:**改变文件所属群组
**chown:**改变文件拥有者
**chmod:**改变文件权限,SUID,SGID,SBIT等特性
举例:1.改变文件的拥有者。将file.txt文件的拥有者改为snow用户。
linux权限管理
2.同样将文件的小组改为snow。
linux权限管理
3.同样可以使用chown同时改变拥有者和所属组。
linux权限管理
修改文件的权限需要使用chmod命令。
举例:
linux权限管理
更改权限方面也可以使用数字来代表权限
r:4 w:2 x:1
linux权限管理

二、隐藏权限

默认权限与隐藏权限
除了基本的r,w,x权限外,在Linux传统的ext2/ext3/ext4文件系统下,我们还可以设置其他的系统隐藏属性,这部分可以使用chattr来设置,而以lsattr来查看。
默认权限:umask
表示目前使用者在创建文件或目录时的权限默认值。也称为遮罩码,反向掩码影响用户新创建的文件和目录的默认权限(应减去的权限)
隐藏权限
查看文件的隐藏权限,lsattr命令。
linux权限管理
chattr更改文件的隐藏权限。
a:让文件或目录仅供附加用途(只能追加,不能覆盖);
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更改变动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
最重要的就是+i与+a这个属性。+i可以让一个文件无法被更动,对于需要强烈的系统安全的人来说,非常重要。
linux权限管理

三、特殊权限和Facl

SUID:
运行某程序时,相应进程的属主是程序文件自身的属主,而不是用户本身了,只对二进制程序有效,执行者对于程序需要有x权限。
linux权限管理
用法为chmod u+s file.txt(本身具有x权限,为s,否则为S)
SGID:
**对于文件:**运行某程序时,相应进程的属组是程序文件自身的属组,而不是用户本身的基本组。
**对于目录:**用户对此目录有rx权限可以进入目录,用户进入此目录后,有效用户组变成该目录的用户组,若此用户在此目录有w权限,则用户创建的文件用户组与该目录用户组相同。
SBIT:
只针对目录有效,当用户对目录有wx权限时,用户在该目录创建的文件或目录,只有自己和root才可以删除。
特殊权限的数字表达:
SUID:4 SGID:2 SBIT:1
用法:chmod 7755 file.txt
第一个7表示特殊命令,后面的三个表示普通权限。

ACL:
文件系统访问控制列表:利用了文件的拓展属性,保存了额外的访问控制权限。
getfacl查看、setfacl设置
-m:设置后续的acl参数,不可以与-x一起使用;
-x:删除后续的acl参数,不可以与-m一起使用;
-b:删除所有的acl参数;
-k:删除默认的acl参数;
-R:递归设置acl参数;
-d:设置默认acl参数,只对目录有效。
用法:setfacl -m u:userA:rw- /root/wenjian/file.txt