⽂件与⽂件夹的默认权限与隐藏权限
除了基本r, w, x权限外,在Linux的Ext2/Ext3⽂件系统下,我们还能够配置其它的系统隐藏属性,这部份可使⽤ chattr来配置,⽽以 lsattr 来查看。
⽂件默认权限:umask
umask 就是指定眼下使⽤者在创建⽂件或⽂件夹时候的权限默认值。
# umask
0022 <==与⼀般权限有关的是后⾯三个数字!
# umask -S
u=rwx,g=rx,o=rx
查阅的⽅式有两种。⼀种能够直接输⼊ umask ,就能够看到数字型态的权限配置分数,⼀种则是增加 -S (Symbolic) 这个选项,就会以符号类型的⽅式来显⽰出权限了。
在默认权限的属性上,⽂件夹与⽂件是不⼀样的。
默认的情况例如以下:
若使⽤者创建为⽂件,则默认没有可执⾏( x )权限。亦即仅仅有 rw 这两个项⽬。也就是最⼤为 666 分,默认权限例如以下:
-rw-rw-rw-
若使⽤者创建为⽂件夹,则因为 x 与能否够进⼊此⽂件夹有关。因此默觉得全部权限均开放,亦即为 777 分。默认权限例如以下:drwxrwxrwx
要注意的是,umask 的分数指的是该默认值须要减掉的权限。
假设以上⾯的样例来说明的话,由于 umask 为 022 ,所以 user 并没有被拿掉不论什么权限。只是 group 与 others 的权限被拿掉了 2 (也就是 w 这个权限)。那么当使⽤者:
创建⽂件时:(-rw-rw-rw-)- (-----w--w-) ==> -rw-r--r--
创建⽂件夹时:(drwxrwxrwx)- (d----w--w-) ==> drwxr-xr-x
⽂件隐藏属性:
chattr (配置⽂件隐藏属性)
要先强调的是,底下的chattr命令仅仅能在Ext2/Ext3的⽂件系统上⾯⽣效,其它的⽂件系统可能就⽆法⽀持这个命令了。
# chattr [+-=][ASacdistu]⽂件或⽂件夹名称
选项与參数:
+ :加⼊某⼀个特殊參数。其它原本存在參数则不动。
- :移除某⼀个特殊參数。其它原本存在參数则不动。
= :配置⼀定,且仅有后⾯接的參数
A :当配置了 A 这个属性时,若你有存取此⽂件(或⽂件夹)时,他的存取时间 atime
将不会被改动。可避免I/O较慢的机器过度的存取磁碟。
这对速度较慢的计算机有帮助
S :⼀般⽂件是⾮同步写⼊磁碟的,假设加上 S 这个属性时。当你进⾏不论什么⽂件的改动,该更动会同步写⼊磁碟中。
a :当配置 a 之后,这个⽂件将仅仅能加⼊数据。⽽不能删除也不能改动数据。仅仅有root
才⼲配置这个属性。
c :这个属性配置之后,将会⾃⼰主动的将此⽂件压缩,在读取的时候将会⾃⼰主动解压缩,
可是在储存的时候,将会先进⾏压缩后再储存
d :当 dump 程序被执⾏的时候。配置 d 属性将可使该⽂件(或⽂件夹)不会被 dump 备份
i :他能够让⼀个⽂件不能被删除、改名、配置连结也⽆法写⼊或新增数据!
』对於系统安全性有相当⼤的助益。
仅仅有 root 能配置此属性
s :当⽂件配置了 s 属性时,假设这个⽂件被删除,他将会被全然的移除出这个硬盘
空间,所以假设误删了。全然⽆法救回来了
u :与 s 相反的,当使⽤ u 来配置⽂件时,假设该⽂件被删除了,则数据内容事实上还
存在磁碟中,能够使⽤来救援该⽂件
将该⽂件的 i 属性取消
# chattr -i attrtest
lsattr (显⽰⽂件隐藏属性)
# lsattr [-adR] ⽂件或⽂件夹
选项与參数:
-a :将隐藏档的属性也秀出来;
-d :假设接的是⽂件夹。仅列出⽂件夹本⾝的属性⽽⾮⽂件夹内的档名;
-R :连同⼦⽂件夹的数据也⼀并列出来
# chattr +aij attrtest
# lsattr attrtest
----ia---j--- attrtest
使⽤ chattr 配置后,能够利⽤ lsattr 来查阅隐藏的属性。只是,这两个命令在使⽤上必需要特别⼩⼼。否则会造成⾮常⼤的困扰。
⽂件特殊权限: SUID,SGID, SBIT
# ls -ld /tmp ; ls -l /usr/bin/passwd
drwxrwxrwt 7 root root 4096 Sep 27 18:23/tmp
-rwsr-xr-x 1 root root 22984 Jan 7 2007/usr/bin/passwd
Set UID
当 s 这个标志出如今⽂件拥有者的 x 权限上时,⽐如刚刚提到的 /usr/bin/passwd 这个⽂件的权限状态:『-rwsr-xr-x』。此时就被称为 Set UID,简称为 SUID 的特殊权限。
基本上SUID有这种限制与功能:
SUID 权限仅对⼆进位程序(binary program)有效;
执⾏者对于该程序须要具有 x的可执⾏权限;
本权限仅在执⾏该程序的过程中有效 (run-time)。
执⾏者将具有该程序拥有者(owner) 的权限。
SUID程序执⾏的过程⽰意图
另外。SUID 仅可⽤在binary program 上,不可以⽤在 shell script 上⾯。这是由于 shell script 仅仅是将⾮常多的 binary 执⾏⽂件叫进来执⾏⽽已。所以 SUID 的权限部分,还是得要看shell script 呼叫进来的程序的配置,⽽不是 shell script 本⾝。当然,SUID 对于⽂件夹也是⽆效的。
Set GID
当 s 标志在⽂件拥有者的 x 项⽬为 SUID,那 s 在组的 x 时则称为 Set GID。
SGID 对⼆进位程序实⽤;与 SUID 不同的是,SGID 能够针对⽂件或⽂件夹来配置。假设是对⽂件来说, SGID 有例如以下的功能:
程序执⾏者对于该程序来说。需具备 x 的权限;
执⾏者在执⾏的过程中将会获得该程序组的⽀持。
使⽤者若对于此⽂件夹具有 r 与 x 的权限时。该使⽤者可以进⼊此⽂件夹;
使⽤者在此⽂件夹下的有效组(effectivegroup)将会变成该⽂件夹的组;
⽤途:若使⽤者在此⽂件夹下具有w 的权限(能够新建⽂件),则使⽤者所创建的新⽂件,该新⽂件的组与此⽂件夹的组同样。
Sticky Bit
这个 Sticky Bit,SBIT 眼下仅仅针对⽂件夹有效,对⽂件已经没有效果了。
SBIT 对⽂件夹的作⽤是:ascii文件夹怎么创建
当使⽤者对於此⽂件夹具有 w,x 权限,亦即具有写⼊的权限时;
当使⽤者在该⽂件夹下创建⽂件或⽂件夹时,仅有⾃⼰与 root 才有权⼒删除该⽂件
换句话说:当甲这个使⽤者于A⽂件夹是具有组或其它⼈的⾝份。⽽且拥有该⽂件夹 w 的权限,这表⽰甲使⽤者对该⽂件夹内不论什么⼈创建的⽂件夹或⽂件均可进⾏ "删除/更名/搬移" 等动作。只是,假设将 A ⽂件夹加上了 SBIT 的权限项⽬时。则甲仅仅可以针对⾃⼰创建的⽂件或⽂件夹进⾏删除/更名/移动等动作,⽽⽆法删除他⼈的⽂件。
SUID/SGID/SBIT 权限配置
数字型态更改权限的⽅式为三个数字的组合,那么在这三个数字之前再加上⼀个数字的话,最前⾯的那个数字就代表这⼏个权限了。
4 为 SUID
2 为 SGID
1 为 SBIT
如果要将⼀个⽂件权限改为-rwsr-xr-x时,因为s 在使⽤者权限中,所以是 SUID ,因此。在原先的 755 之前还要加上 4 。也就是: chmod 4755 filename 来配置。
观察⽂件类型:file
假设你想要知道某个⽂件的基本数据。就能够利⽤ file 这个命令来查看。
# file ~/.bashrc
/root/.bashrc: ASCII text <==告诉我们是 ASCII 的纯⽂字档
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论