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

除了基本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 对目录的作用是:

当使用者对於此目录具有 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 的纯文字档
时间: 2024-11-04 10:13:27

文件与目录的默认权限与隐藏权限的相关文章

攻城狮在路上(叁)Linux(十五)--- 文件与目录的默认权限与隐藏权限

一.文件默认权限:umask <==需要被减去的权限. 1.umask指的是当前用户在新建文件或者目录时的默认权限,如0022; 2.默认情况下,用户创建文件的最大权限为666; 创建目录的最大权限为777. 3.最终权限 = 最大权限 - umask; <== 此处注意并非是数值直接相减. 4.设置umask: umask 002; 5.由上述条件,自己判断用户新建文件或目录的最终权限. 二.文件的隐藏属性: chattr.lsattr , 隐藏属性对于系统安全有很大的帮助. chattr

Linux中的默认权限与隐藏权限(文件、目录)

一个文件(或目录)拥有若干个属性,包括(r/w/x)等基本属性,以及是否为目录(d)与文件(-)或连接文件(l)等属性.此外,Linux还可以设置其他系统安全属性,使用chattr来设置,以lsattr来查看,最重要的是可以设置其不可修改的特性,即便是文件的拥有者都不能进行修改.这个属性相当重要,尤其是在安全机制方面(security). 文件默认权限:umask 当建立一个新的文件或目录时,它的默认属性是与umask有关的.通常,umask就是指定当前用户在建立文件或目录时的属性默认值.那么,

文件与目录的默认权限与隐藏权限【转vbird】

一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略提过了(chgrp, chown, chmod) ,本小节会再加强补充一下! 除了基本r, w, x权限外,在Linux的Ext2/Ext3文件系统下,我们还可以配置其他的系统隐藏属性, 这部份可使用 chattr 来配置,而以 lsattr 来查看,最重要的属性就是可以配置其不可修改的特性!让连文件的拥有者都不能进行修改! 这个

umask-创建文件或目录的默认权限

linux下文件的默认权限是由umask值决定的  umask是通过八进制的数值来定义用户创建文件或目录的默认权限的  umask对应数值表示的是禁止的权限.具体的细节,文件和目录略有不同. root的默认umask是0022普通用户的默认umask是0002 文件:设置用户创建文件默认的权限  当umask为偶数时,创建文件的默认权限为:文件最大权限减去umask权限  例:设置umask为044,则文件的默认权限为666-044=622,即-rw--w--w-  当umask为奇数时,创建文

linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755

chown /bin/chownchown [用户] [文件或目录] 改变文件或目录的所有者只有root可以改变文件或目录的所有者 root用户:mkdir /tmptouch /tmp/test.fileuseradd meinvpasswd meinvchown meinv /tmp/test.file meinv用户:touch /tmp/test.file1chown root /tmp/test.file1 失败 chgrp /bin/chgrp chgrp [用户组] [文件或目录]

[权限管理]——一般权限、特殊权限、隐藏权限

Linux下的文件/目录有三类权限:一般权限.特殊权限.隐藏权限 关于权限与归属的认识(三张图) 访问权限/一般权限:r w x 1.对目录而言rwx的意义是? r:意味着具有读取目录结构列表的权限.即能够使用ls命令 $ ll dr--------. 2 lyj01 lyj01 4096 7月 7 09:59 test1 $ cd test1/ ------>#只有r权限是没有办法cd进入目录的 bash: cd: test1/: 权限不够 $ ls test1/ ls: 无法访问test1/

linux之权限之隐藏权限

linux权限之隐藏权限 大家都知道,在Linux系统中root用户是超级大"Boss",这样说的原因是没有他删除不了的文件,感觉"无法无天"那么今天我要跟大家分享的一个权限可以限制root用户删除指定权限. 首先说说,隐藏权限有什么作用,什么场景需要使用.隐藏权限的作用主要有: 1)任何用户不可以删除用户创建的指定文件,只可以查看 2)任何用户不可以删除用户创建的指定文件,可以查看且可以编辑指定文件. 有些人说哪里会用到此权限呢?/etc/resolv.conf

Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

文件默认权限:umask [[email protected] ~]# umask 0022 <==与一般权限有关的是后面三个数字! [[email protected] ~]# umask -S u=rwx,g=rx,o=rx 默认的情况如下: 若使用者创建为『文件』则默认『没有可运行( x )权限』,亦即只有 rw 这两个项目,也就是最大为 666 分,默认权限如下: -rw-rw-rw- 若使用者创建为『目录』,则由於 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777

Linux之文件(目录)默认权限、特殊权限与隐藏权限

文件默认权限 从Linux之用户组.文件权限详解了解到文件与目录的基本权限管理,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask. [email protected]:~$ umask //我们可以使用umask命令来查看默认权限 0002 第1个0是特殊默认权限,可以先不用管.后面002就是我们创建文件/目录的默认权限.由于普通文件默认没有可执行权限,即只有r.w权限,所以权限最大为666(-rw-rw-rw-).目录需要进入访问权限,需要有r.w