如何在Linux中显示文件属性

时间:2020-03-05 15:27:40  来源:igfitidea点击:

Linux向我们提供文件和目录权限的访问控制,这些级别是用户,组和其他的三个级别。
这些文件权限提供了安全性和访问控制的基本级别。

Linux还具有高级访问控制功能,如ACL(Access Control Lists)和属性。
属性定义文件属性。
本教程描述了这些属性是什么以及我们如何访问它们。

Linux中的属性

某些文件系统支持其他属性(除了前一节中描述的那些)。
特别是,某些Linux本机文件系统支持使用Chattr命令调整的几个属性。

文件和目录可以具有以下属性:

  • a - 仅添加
  • C - 压缩
  • D - 没有转储
  • E - 范围格式
  • i - 不可变
  • J - 数据日记
  • S - 安全删除
  • T - 没有尾巴合并
  • U - 拒绝
  • A - 没有atime更新
  • D - 同步目录更新
  • S - 同步更新
  • T - 目录层次结构的顶部

定义每个文件属性

根据手册页的这些属性的详细含义是:

  • a - 仅添加:此属性允许将文件添加到,但不删除。它可防止对记录数据(如日志文件)的文件进行意外或者恶意更改。
  • C - 压缩:它导致内核自动压缩写入文件的数据,并在读回时解压缩。
  • D - 否转储:它确保在使用转储实用程序的备份中未备份文件
  • E - 范围格式:它表示该文件正在使用范围映射磁盘上的块。
  • i - immutable:它使文件不可变,这是超越简单地禁用对文件的写入权限的步骤。无法删除文件,无法创建链接,并且无法重命名文件。
  • J - 数据日记:它确保在ext3文件系统上,文件首先写入日志,只有在硬盘上的数据块之后。
  • s - 安全删除:确保在删除后无法恢复文件。
  • T - 无尾部合并:尾部合并是一个过程,其中文件末端处于不填充完整块的小型数据次数与来自其他文件的类似数据合并。
  • U-UNDELEDS:删除文件时,保存其内容,允许开发实用程序,该实用程序与该信息一起使用以销售已删除的文件。
  • a - 无atime更新:Linux访问文件时不会更新访问时间戳。
  • D - 同步目录更新:确保将文件更改为立即将文件写入磁盘,而不是首先缓存。
  • s - 同步更新:文件的更改在磁盘上同步写入。
  • t - 目录层次结构的顶部:目录将被视为作为orlov块分配器的目的的目录层次结构的顶部。

如何使用lsattr命令列出文件属性

某些Linux-Native文件系统支持我们可以使用LSATTR命令列出的几个属性。
要列出当前目录的文件和子目录的属性,请执行

$lsattr
 -----a-----------e- ./file1
 ----i------------e- ./hello_dir
 -----------------e- ./usrcopy
 -----------------e- ./special_characters
 -----------------e- ./file3
 -----------------e- ./contents
 -----------------e- ./hard_link
 -----------------e- ./usrlisting

其中我们可以看到"hello_dir"目录是不可变的,名为'file1'的文件是"oppend"文件。

我们可以使用lsattr命令列出特定目录的内容的属性,然后使用文件或者目录名称作为参数。

# lsattr script-test/
-------------e-- script-test/password-gen.sh
-------------e-- script-test/continue.sh
-------------e-- script-test/hello
-------------e-- script-test/folder1

作为"ls -l"命令,使用lsattr的"d"选项将列出目录本身的属性而不是该目录中的文件。

$# lsattr -d script-test/
-------------e-- script-test/

"-r"选项将递归列出目录的属性。
这意味着它将显示子目录内容的属性

# lsattr -R script-test/
-------------e-- script-test/password-gen.sh
-------------e-- script-test/continue.sh
-------------e-- script-test/hello
-------------e-- script-test/folder1
script-test/folder1:
----i--------e-- script-test/folder1/file1

我们可以看到它,它也显示了'folder1'的内容的属性

我们可以使用"-v""选项具有该程序的版本

]# lsattr -V
lsattr 1.42.9 (28-Dec-2013)
-------------e-- ./jdk-8u65-linux-x64.tar.gz
-------------e-- ./ttyrec-1.0.6-1.i586.rpm.1
-------------e-- ./bootstrap