linux系统特殊权限和特殊属性,增、删、改、查

来源:互联网 发布:乎的偏旁是什么 编辑:程序博客网 时间:2024/04/30 13:54

linux系统允许对文件和目录添加特殊权限位和特殊属性,日常管理过程中和恰当的使用命令对一些关键文件和目录添加相应的权限和属性,有效的保护

系统文件。近期对这些内容作了一些整理,详细内容如下:


1
首先看一下怎么查看文件特殊权限属性命令

lsattr [-adlRvV][文件或目录...]

-a  显示所有文件和目录,包括以.为名称开头字符的额外内建,现行目录.与上层目录..

example
[root@ser1 example]# lsattr -a *
----ia------- 1.txt
----ia------- ll
 
-d  显示,目录名称,而非其内容。
 
example
[root@ser1 example]# lsattr -d
------------- .

-R  递归处理,将指定目录下的所有文件及子目录一并处理。

example
[root@ser1 example]# lsattr -R
----ia------- ./1.txt
----ia------- ./ll

./ll:

-v  显示文件或目录版本。
 
example
[root@ser1 example]# lsattr -v
3271582110 ----ia------- ./1.txt
3271582111 ----ia------- ./ll

-V  显示版本信息。

example
[root@ser1 example]# lsattr -V
lsattr 1.39 (29-May-2006)
----ia------- ./1.txt
----ia------- ./ll


查看命令使用 -a参数比较多;


查看特殊权限位命令;

[root@ser1 example]# ll
-rwsr-sr-t 1 root root    0 07-12 14:20 1.txt
drwsr-sr-t 2 root root 4096 07-12 14:20 ll


2
修改ext2ext3文件系统属性(attribute)通过chattr命令修改属性能够提高系统的安全性,chattr命令不能护//dev/tmp/var目录。
chattr(change attribute)
chattr [-RV][-v<版本编号>][-+=AacDdijsSu][文件或目录]
常用参数说明:
  -R:递归处理所有的文件及子目录。
    -V:详细显示修改内容,并打印输出。
  -:失效属性。
  +:激活属性。
   :指定属性。 
  AAtime,告诉系统不要修改对这个文件的最后访问时间。
  SSync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
  aAppend Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修

改文件,而不允许删除任何文件。
    iImmutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
  D:检查压缩文件中的错误。
  dNo dump,在进行文件系统备份时,dump程序将忽略这个文件。
  CCompress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁

盘。
  sSecure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
  uUndelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。

example
为文件添加特殊属性,比较常用和 i参数:
####################################################################3
aAppend Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文

件,而不允许删除任何文件。
cd example/

chattr +a 1.txt    #添加a特殊属性;

[root@ser1 example]# lsattr -a   #查看,属性添加成功

-----a------- ./1.txt

[root@ser1 example]# echo 321 >> 1.txt  #测试添加内容到文件;
[root@ser1 example]# more 1.txt 
321
[root@ser1 example]# echo 456 >> 1.txt  #再次添加内容到文件;
[root@ser1 example]# more 1.txt         #查看文件内容;
321
456
[root@ser1 example]# echo 4 > 1.txt     #写入新内容,将原有内容清除;
-bash: 1.txt: 不允许的操作     #提示报错!不允许修改原有内容

[root@ser1 example]# rm -rf 1.txt  #删除文件,报错,不允许删除文件;
rm: 无法删除 “1.txt”: 不允许的操作
[root@ser1 example]#

iImmutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。

[root@ser1 example]# chattr -a 1.txt  #删除a的属性;

[root@ser1 example]# lsattr -a 1.txt  #查看文件属性,-a特殊属性已删除;
------------- 1.txt

[root@ser1 example]# chattr +i 1.txt    #添加 属性,

[root@ser1 example]# lsattr -a 1.txt  #查看属性添加成功;
----i-------- 1.txt

[root@ser1 example]# echo 789 >> 1.txt  #不允许向文件内写入信息;
-bash: 1.txt: 权限不够
#########################################################################

3
Linux中的特殊权限

特殊权限设置:SUIDSGIDsticky-bit.下面列出了3个特殊权限的说明:

     SUID:当一个设置了SUID位的可执行文件被执行时,该文件以所有者的身份运行,也就是说无论谁来执行这个文件,他都拥有文件所有者的特权,可以任意

存取该文件拥有者能使用的全部系统资源。如果所有者是root,那么执行人就有超级用户的特权了。

chmod 4755 example/    #设置SUID

     SGID:当一个设置了SGID位的可执行文件被执行时,该文件将具有所属组的特权,任意存取整个组所能使用的系统资源;若一个目录设置了SGID,则所有被

复制到这个目录下的文件,其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-ppreserve,保留文件属性)参数,才能保留原来所属的群组设置

chmod 2755 example/    #设置SGID

     sticky-bit:对一个文件设置了sticky-bit之后,尽管其他用户有写权限,也必须由属主执行删除、移动等操作,对一个目录设置了sticky-bit之后,存放

在该目录下的文件仅允许其属主执行删除、移动等操作

chmod 1755 example/ #设置sticky-bit