当前位置: > 教程 > 服务器 >

详解Linux chattr 命令,超越权限任性修改
栏目分类:服务器   发布日期:2019-12-08   浏览次数:

Linux chattr 命令 一般,“chattr”命令用于更改Linux文件上属性。以下是它的语法: chattr [ -RVf ] [ -v version ] [ mode ] files... 下面是man手册对它的描述: chattr 改变一个Linux文件系统上的文件属性。 一个通用格式是:+-=[aAcCdDeijsStTu] ‘+’

Linux chattr 命令

一般,“chattr”命令用于更改Linux文件上属性。以下是它的语法:

chattr [ -RVf ] [ -v version ] [ mode ] files...

下面是man手册对它的描述:

chattr 改变一个Linux文件系统上的文件属性。

一个通用格式是:+-=[aAcCdDeijsStTu]

‘+’选项,将给文件添加属性;‘-’选项,移除文件中的属性;‘=’选项,使得文件只有这些属性。

字母 'aAcCdDeijsStTu' 可以赋予文件的新属性:

a:只能附加数据A:不修改访问时间c:压缩文件,C:不执行写入时复制(COW) 。多个调用者获取同一个资源,这时,另一个调用者对这资源进行了修改,不生成一个副本给d:不 dump D: 同步更新目录e:extent格式(一种文件系统格式)i:不能修改。不能删除或重命名,不能创建到该文件的链接,也不能向该文件写入数据。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 能力的进程才能设置或清除此属性。j:数据日志s:安全删除S:同步更新t:不知道文件尾部合并T:目录层次的顶部u:文件被删除时,其内容会被保存,后面可以请求恢复

下面的只读属性,可以使用 lsattr列出,但不能被 chattr 修改:

E:压缩错误h:巨大的文件I:索引目录N:内联数据X:压缩原始访问Z:压缩文件是脏的

并不是所有文件系统都支持所有标志;参考文件系统手册了解如btrfs(5), ext4(5), 和 xfs(5)文件格式的更多详情。

下面是一些问答式的例子,这些例子应该能让你对chattr命令的工作原理有一个很好的了解。

Q1. chattr 命令如何使用?

假设您想要使一个文件成为只读的。因此,您所要做的就是使用+i选项和文件的名称作为参数来运行chattr命令。

如:

chattr +i test.txt

下面的截图显示,一旦使用chattr成为只读文件,就不会有其他操作在文件上取得成功。

详解Linux chattr 命令,超越权限任性修改


注意:正如您已经观察到的,您需要拥有使用chattr命令的root权限。

Q2. chattr 命令如何取消只读属性?

这很简单--你所要做的就是使用-i选项替换+i。例如:

chattr -i test.txt

详解Linux chattr 命令,超越权限任性修改


Q3. chattr 命令如何给一个文件添加只能追加(append-only)的权限?

有时,您可能不希望对文件进行完全限制。我的意思是,您可能想要为用户提供对文件的追加的访问,这样就可以添加新的内容,但是现有的内容不能被删除或编辑。这也可以通过+a选项。

chattr +a test.txt

详解Linux chattr 命令,超越权限任性修改


现在可以附加内容到文件中,但是不能编辑文件中的现有信息,也不能删除文件。要取消这种行为,只需使用-a选项。

chattr -a test.txt

Q4. chattr 命令如何对一个目录中的所有文件添加限制?

这可以使用标记-R来完成,它允许您递归地改变目录及其内容的属性。例如,如果您想让test-dir目录中的所有文件都是只读的,那么请使用以下方式:

chattr -R +i ./test-dir/

下面的截图显示了只读限制被成功地应用到目录中的所有文件中。

详解Linux chattr 命令,超越权限任性修改


Q5. 如何查看 chattr 命令赋予文件上的属性?

到目前为止,为了检查是否成功执行了chattr目录,我们尝试执行一些操作,如编辑文件或删除它。但是有一个单独的命令,可以让您轻松地查看文件是否有某个属性。这个命令是lsattr。

lsattr [FILENAME]

例如,下面的截图显示了lsattr的输出,清楚地表明“i”属性被应用到目录中的所有文件中。

详解Linux chattr 命令,超越权限任性修改


再确认一下,这是使用-i选项后的输出。

详解Linux chattr 命令,超越权限任性修改


您可以在上面的截图中看到,只读属性从所有文件中删除了。

总结

如果您是一个系统管理员,或者在Linux机器上管理用户,那么您现在明白了,chattr是一个必须知道的命令行工具。有效地使用这个命令可以避免很多麻烦。

相关热词:

下一篇:没有了
js特效 教程 资源 资讯