Linux里的特殊权限之a和i

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux里的特殊权限之a和i相关的知识,希望对你有一定的参考价值。

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

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


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

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

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

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

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

example
[[email protected] example]# lsattr -R
----ia------- ./1.txt
----ia------- ./ll

./ll:

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

-V  显示版本信息。

example
[[email protected] example]# lsattr -V
lsattr 1.39 (29-May-2006)
----ia------- ./1.txt
----ia------- ./ll


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


查看特殊权限位命令

[[email protected] 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
修改ext2和ext3文件系统属性(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
为文件添加特殊属性比较常用a 和 i参数
####################################################################3
aAppend Only系统只允许在这个文件之后追加数据不允许任何进程覆盖或截断这个文件。如果目录具有这个属性系统将只允许在这个目录下建立和修改文

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

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

[[email protected] example]# lsattr -a   #查看属性添加成功

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

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

[[email protected] example]# rm -rf 1.txt  #删除文件报错不允许删除文件
rm: 无法删除 “1.txt”: 不允许的操作
[[email protected] example]#

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

[[email protected] example]# chattr -a 1.txt  #删除a的属性

[[email protected] example]# lsattr -a 1.txt  #查看文件属性-a特殊属性已删除
------------- 1.txt

[[email protected] example]# chattr +i 1.txt    #添加 i 属性

[[email protected] example]# lsattr -a 1.txt  #查看属性添加成功
----i-------- 1.txt

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

3
Linux中的特殊权限

特殊权限设置:SUID、SGID和sticky-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
 


以上是关于Linux里的特殊权限之a和i的主要内容,如果未能解决你的问题,请参考以下文章

linux 特殊权限chattr(文件系统级别的权限) Attr 权限和 ACL访问控制列表 ...

Linux 特殊位权限s,t,i,a

linux基础之特殊权限

Linux之权限设置(默认权限隐藏权限及特殊权限)

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

Linux中的特殊权限stia.md