Linux之文件与目录的默认权限与隐藏权限

1、文件默认权限:umask

指定目前用户在建立文件或目录时候的默认权限值
语法:umask
注意:这里的数字是值该默认值需要减掉的权限,root的umask默认是022,一般用户的umask为002。

①、以符号的显示方式显示出权限
语法:umask -S
在这里插入图片描述
②、当用户建立文件则默认没有可执行(x)权限,即只有rw权限,也就是666
在这里插入图片描述
③、当用户建立目录,则由x与是否可以进入此目录有关,因此默认所有权限均开放,即777
在这里插入图片描述④、更改默认的权限
语法:umask 需要取出的新的权限

案例一:更改默认文件权限为744
在这里插入图片描述

2、文件的隐藏权限

注意:下面的chattr命令只能在ext2、ext3、ext4的Linux传统文件系统上面完整生效

①、语法:chattr [±=] [ASacdistu] 文件或目录名称

“ + ”:增加某一个特殊参数,其他原本存在的参数不动
“ - ”:删除某一个特殊参数,其他原本存在的参数不动
“ = ”:直接设置参数,且仅有后面接的参数
“ A ”:当存取文件(或目录)时,它的存取时间atime不会被修改,可避免I/O较慢的机器过度读写磁盘
“ S ”:一般文件是否同步写入磁盘
“ a ”:当设置了这个值,这个文件将只能增加数据,而不能删除数据(修改数据),只有 root 才能设置这个属性
“ c ”:自动将此文件【压缩】,读取的时候自动解压缩
“ d ”:当执行dump程序时,不被备份
“ i ”:让文件【不能被删除、改名、设置链接也无法写入或新增数据】
“ s ”:强制删除(完全从硬盘删除,无法恢复)
“ u ”:如果删除了文件,则数据内容其实还存在磁盘中,可以使用来恢复该文件

案例二:将abc文件夹下的文件加入 i 参数,并删除看看
在这里插入图片描述
②、查看隐藏属性
语法:lsattr [-adR] 文件名
“ a ”:将隐藏文件的属性也显示出来
“ d ”:如果接的是目录,仅列出目录本身的属性而非目录内的文件名
“ R ”:连同子目录的数据也一同列出来
在这里插入图片描述

3、文件的特殊权限:SUID、SGID、SBIT

①、Set UID
当s这个标识在文件拥有者的x权限上时,【例如:-rwsr-xr-x】,此时就被称为Set UID,简称SUID的特殊权限。
SUID的限制与功能:
a)SUID权限仅对二进制程序(binary program)有效
b)执行者对于该程序需要具有x的可执行权限
c)本权限仅在执行该程序的过程有效(run-time)
d)执行者将具有该程序拥有者的权限

另外,SUID仅可用在二进制程序上,不能够用在shell脚本上。这是因为shell脚本只是能够将很多的二进制执行文件调用执行而已。所有SUID的权限部分,还是要看shell脚本调用进来的程序设置,而不是shell脚本本身。

注意:SUID对于目录是无效的

②、Set GID
当s这个标识在用户组的x权限上时,【例如:-rwx–sr-x】,此时就被称为Set GID,简称SGID的特殊权限。
在这里插入图片描述
SGID有如下功能:
a)SGID对二进制程序有用
b)程序执行者对于该程序来说,需具备x的权限
c)执行者在执行的过程中将会获得该程序用户组的支持

在这里插入图片描述

当一个目录设置了SGID,那么将拥有以下的功能:
a)用户若对于此目录具有 r 和 x 的权限时,该用户能够进入目录
b)用户在此目录下的有效用户组(effective group)将会变成该目录的用户组
c) 用途:若用户在此目录下具有 w 的权限(可以新建文件),则用户所建立的新文件,该新文件的用户组与此目录的用户组相同

③、Sticky Bit
这个Sticky Bit(SBIT)目前只针对目录有效,对于文件已经没有效果了,SBIT的效果如下:
①、当用户对于此目录具有 w 、x 权限,即具有写入的权限
②、当用户在该目录下建立文件或目录时,仅有自己与root才有权力去删除该文件

4、SUID/SGID/SBIT权限设置

4为SUID
2为SGID
1为SBIT

案例三:假设要将一个文件权限改为【-rwsr-xr-x】时,由于 s 在用户权限中,所有是SUID,因此,在原先的755之前还要加上一个4,也就是【chmod 4755 filename】来设置。
在这里插入图片描述

这里的 S 和 T 表示当我们的 x 权限不存在时(666),所有此时就表示这个 S 和 T 为空

猜你喜欢

转载自blog.csdn.net/qq_44796093/article/details/109374284