前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Linux中的Chattr命令更改文件属性

Linux中的Chattr命令更改文件属性

原创
作者头像
用户5005176
修改2021-08-10 10:26:00
修改2021-08-10 10:26:00
3.7K00
代码可运行
举报
文章被收录于专栏:网站知识网站知识
运行总次数:0
代码可运行

在Linux中,文件属性是描述文件行为的元数据属性。 例如,属性可以指示是否压缩文件或指定是否可以删除文件。

可以设置或清除诸如不变性之类的某些属性,而诸如加密之类的其他属性则是只读的,并且只能被查看。 对某些属性的支持取决于所使用的文件系统。

本文介绍了如何使用chattr命令更改Linux文件系统上的文件属性。

chattr语法

chattr命令采用以下一般形式:

代码语言:javascript
代码运行次数:0
运行
复制
chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...

[OPERATOR]部分的值可以是以下符号之一:

  • +-加号运算符告诉chattr将指定的属性添加到现有属性中。
  • - -负号运算符告诉chattr从现有属性中删除指定的属性。
  • = -等于运算符告诉chattr将指定的属性设置为唯一属性。

操作符后跟一个或多个要添加或从文件属性中删除的[ATTRIBUTES]标志。 以下是一些常用属性和相关标志的列表:

  • a-设置此属性后,只能以追加模式打开文件进行写入。
  • A -打开具有该属性集的文件时,其atime记录不会更改。 atime(访问时间)是某个命令或应用程序最后一次访问/打开文件的时间。
  • e -此属性表示文件正在使用扩展区来映射磁盘上的块。 e属性无法用chattr修改。
  • i -此属性表示文件是不可变的,这意味着该文件无法删除或重命名。

要获取所有文件属性和标志的完整列表,请在终端中输入man chattr

默认情况下,使用cprsync之类的命令复制文件时,不会保留文件属性。

chattr范例

chattr的常见用途之一是将不可变标志设置为文件或目录,以防止用户删除或重命名文件。

您可以使用lsattr命令查看文件属性:

代码语言:javascript
代码运行次数:0
运行
复制
lsattr todo.txt

以下输出显示仅设置了e标志:

代码语言:javascript
代码运行次数:0
运行
复制
--------------e----- todo.txt

要使文件不可变,请使用+运算符将i标志添加到现有属性中:

代码语言:javascript
代码运行次数:0
运行
复制
sudo chattr +i todo.txt

我们使用sudo是因为只有root才能更改不可变标志。

确认已添加属性:

代码语言:javascript
代码运行次数:0
运行
复制
lsattr todo.txt

----i---------e----- todo.txt

要还原更改并删除不可变标志,请使用-运算符:

代码语言:javascript
代码运行次数:0
运行
复制
sudo chattr +i todo.txt

使用chattr,您可以一次添加或删除多个属性。 例如,要使文件不可变并告诉内核不要跟踪上次访问的时间,可以使用:

代码语言:javascript
代码运行次数:0
运行
复制
sudo chattr +iA todo.txt

您可以使用的最后一个运算符是=运算符。 例如,要将e属性设置为唯一属性,可以运行:

代码语言:javascript
代码运行次数:0
运行
复制
sudo chattr "=e" todo.txt

请注意,运算符和标志都用引号引起来,以避免对+字符进行shell解释。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • chattr语法
  • chattr范例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档