目录

前言

一、chattr命令介绍

二、语法及常用参数和模式

2.1 一样用help或man查看语法

2.2 常用参数

2.3 命令的模式

三、参考实例

3.1 给文件添加无法修改的权限

3.2 从指定文件移除隐藏属性

3.3 给目录添加隐藏属性,递归操作

3.4 设置文件只能添加内容,无法覆盖

3.5 不再修改文件或目录的访问时间

四、chattr的问答题

4.1 模拟找命令的过程

4.2 解决方法

总结

前言

前面了解了文件的权限和特殊权限,今天讲一下chattr这个命令,主要是用来更改文件隐藏属性,下面一起来看下。

一、chattr命令介绍

chattr命令来自于英文词组“chang attribute”的缩写,其功能是用于更改文件隐藏属性。常用的ls命令仅能能够查看到文件的一般权限、特殊权限、SELinux安全上下文与是否有FACL访问控制列表的情况,且无法查看到文件隐藏属性。

二、语法及常用参数和模式

2.1 一样用help或man查看语法

NAMEchattr - change file attributes on a Linux file systemSYNOPSISchattr [ -RVf ] [ -v version ] [ mode ] files...

语法:chattr  【参数】【模式】文件

这里语法的格式除了可以加参数,还需要加模式。

2.2 常用参数

先来讲讲参数方面有哪些比较常用到的,以表格形式列出

-R 递归处理目录下的所有文件
-v 设置文件或目录版本
-V 显示指令执行过程
+ 开启文件或目录的该项属性
-- 关闭文件或目录的该项属性
= 指定文件或目录的该项属性

2.3 命令的模式

命令的模式有以下这些内容,以表格形式呈现,即设置的权限和对应的作用

权限 作用
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
x 可以直接访问压缩文件中的内容

三、参考实例

3.1 给文件添加无法修改的权限

可以看到文件设置了无法修改的权限后,文件不能被删除;

[root@localhost ~]# chattr +i anaconda-ks.cfg
[root@localhost ~]# lsattr anaconda-ks.cfg
----i----------- anaconda-ks.cfg[root@localhost ~]# rm -r anaconda-ks.cfg
rm:是否删除普通文件 "anaconda-ks.cfg"?y
rm: 无法删除"anaconda-ks.cfg": 不允许的操作

3.2 从指定文件移除隐藏属性

[root@localhost ~]# chattr -i anaconda-ks.cfg
[root@localhost ~]# lsattr anaconda-ks.cfg
---------------- anaconda-ks.cfg

3.3 给目录添加隐藏属性,递归操作

[root@localhost ~]# chattr -R +i data/
[root@localhost ~]# lsattr data/
----i----------- data/a.txt
----i----------- data/b.txt
[root@localhost ~]# lsattr data/ -d
----i----------- data/

3.4 设置文件只能添加内容,无法覆盖

[root@localhost ~]# echo "123456" > a.txt
[root@localhost ~]# chattr +a a.txt
[root@localhost ~]# echo "123456" > a.txt
bash: a.txt: 不允许的操作
[root@localhost ~]# echo "123456" >> a.txt
[root@localhost ~]# cat a.txt
123456
123456

3.5 不再修改文件或目录的访问时间

[root@localhost ~]# chattr +A anaconda-ks.cfg
[root@localhost ~]# lsattr  anaconda-ks.cfg
-------A-------- anaconda-ks.cfg
[root@localhost ~]# vim anaconda-ks.cfg
[root@localhost ~]# stat anaconda-ks.cfg 文件:"anaconda-ks.cfg"大小:1371       块:8          IO 块:4096   普通文件
设备:fd00h/64768d  Inode:67259498    硬链接:1
权限:(0444/-r--r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2023-02-18 10:43:12.451650907 +0800
最近更改:2023-02-18 10:43:12.451650907 +0800
最近改动:2023-02-18 10:43:12.453650916 +0800
创建时间:-
[root@localhost ~]# vim anaconda-ks.cfg
[root@localhost ~]# stat anaconda-ks.cfg 文件:"anaconda-ks.cfg"大小:1384       块:8          IO 块:4096   普通文件
设备:fd00h/64768d  Inode:67664943    硬链接:1
权限:(0444/-r--r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2023-02-18 10:43:31.555734612 +0800
最近更改:2023-02-18 10:43:31.555734612 +0800
最近改动:2023-02-18 10:43:31.555734612 +0800
创建时间:-
[root@localhost ~]# echo "123456" > anaconda-ks.cfg
[root@localhost ~]# tail -n 1 anaconda-ks.cfg
123456

A模式的访问时间不变,但是可以修改文件的内容以及覆盖。

四、chattr的问答题

如果你需要用到这个chattr命令去取消文件的隐藏权限,但是你执行命令的时候显示命令不存在,这时如何将它找回来。(你不知道这个命令被修改成什么名字了)

4.1 模拟找命令的过程

[root@localhost ~]# which chattr
/usr/bin/chattr
[root@localhost ~]# mv /usr/bin/chattr /usr/bin/sanlian
以上为实验步骤[root@localhost ~]# lsattr data/
----i----------- data/a.txt
----i----------- data/b.txt
[root@localhost ~]# chattr -i data/
bash: /usr/bin/chattr: 没有那个文件或目录
[root@localhost ~]# which chattr             #找不到命令位置
/usr/bin/which: no chattr in (/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin)
[root@localhost ~]# [root@localhost ~]# yum search chattr        #找这个命令的软件包也找不到
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile* base: mirrors.ustc.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.ustc.edu.cn
警告:没有匹配 chattr 的软件包
No matches found
[root@localhost ~]# yum install chattr
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile* base: mirrors.ustc.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.ustc.edu.cn
base                                                            | 3.6 kB  00:00:00
extras                                                          | 2.9 kB  00:00:00
updates                                                         | 2.9 kB  00:00:00
没有可用软件包 chattr。
错误:无须任何处理[root@localhost ~]# find / -name chattr     #find命令也找不到

4.2 解决方法

可以直接从同系统的服务器把/usr/bin/chattr这个命令拷出来就行了

另外一台服务器上输入这个命令,把chattr传输到需要chattr的服务器

scp /usr/bin/chattr root@192.168.212.166:/usr/bin  #IP填写要传输到的服务器位置
The authenticity of host '192.168.212.166 (192.168.212.166)' can't be established.
ECDSA key fingerprint is SHA256:r7pA/vg/8gpqLgC3rG/hfxy//gF73wAsy3Kzg/Hrq1Q.
ECDSA key fingerprint is MD5:64:24:cf:fa:e9:24:e6:e9:41:c7:9f:44:9a:9e:00:6e.
Are you sure you want to continue connecting (yes/no)? yes    #按yes确认
Warning: Permanently added '192.168.212.166' (ECDSA) to the list of known hosts.
root@192.168.212.166's password:     #输入对端的密码
chattr                                               100%   10KB  10.8MB/s   00:00    

已经可以使用这个命令了

[root@localhost ~]# chattr -i data/
[root@localhost ~]# lsattr data/
----i----------- data/a.txt
----i----------- data/b.txt
[root@localhost ~]# lsattr data/ -d
---------------- data/

总结

chattr命令修改文件和目录的隐藏属性,要查看文件是否设置了隐藏属性是使用latter命令去查看的,使用起来也比较简单;如果要给文件设置隐藏权限,在模式前面写上一个加号,若要取消隐藏权限,则加个减号;觉得以上内容还行的话,可以一键三连支持一下!

Linux基础命令-chattr更改文件隐藏属性相关推荐

  1. linux命令grpck,Linux基础命令---验证组文件grpck

    grpck grpck指令可以验证组文件"/etc/group"和"/etc/gshadow"的完整性.检查的内容包括:正确的字段数.唯一有效的组名称.有效的组 ...

  2. 一天一个Linux基础命令之复制文件或目录命令cp

    cp复制文件或目录 1.命令格式 cp[OPTION]... SOURCE... DIRECTORY 2.命令说明 cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,she ...

  3. Linux基础命令---检查密码文件pwck

    pwck        检查用户密码文件"/etc/passwd"和"/etc/shadow"的完整性,将验证结果送到标砖输出.提示用户删除格式不正确或有其他不 ...

  4. Linux基础命令---检查密码文件pwck 1

    pwck        检查用户密码文件"/etc/passwd"和"/etc/shadow"的完整性,将验证结果送到标砖输出.提示用户删除格式不正确或有其他不 ...

  5. Linux基础命令----tailf 跟踪文件输出

    描述 tailf命令几乎等同于tail -f,严格说来应该与tail --follow=name更相似些.当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth o ...

  6. linux lp 打印中文,Linux基础命令---lp打印文件

    lp lp指令用来打印文件,也可以修改存在的打印任务.使用该指令可以指定打印的页码.副本等. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.openSUSE.SU ...

  7. Linux基础命令---lp打印文件

    lp lp指令用来打印文件,也可以修改存在的打印任务.使用该指令可以指定打印的页码.副本等. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.openSUSE.SU ...

  8. Linux基础命令----tail 查看文件尾部内容

    描述 tail命令用于输入文件中的尾部内容 tail命令默认在屏幕上显示指定文件的末尾10行 如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题 例如:==> head-help.t ...

  9. linux账户密码 群组放在,linux基础命令学习(四)用户与群组

    一.linux用户账号的管理 linux用户账号的管理主要包括用户添加.用户删除.用户修改. 添加用户账号就是在系统创建一个新账号,然后为新账号分为用户号.用户组.主目录和登录Shell等资源. 刚添 ...

最新文章

  1. mysql 设计表_mysql,表设计
  2. 浅析Banner设计
  3. [零基础,全开源]基于web的远程深度学习服务搭建
  4. 年度迷惑新闻:美女其实是个男生?
  5. ios 给网页传值_iOS学习——页面的传值方式
  6. 重温《数据库系统概论》【第一篇 基础篇】【第4章 数据库安全性】
  7. Java并发编程 - 显示锁Lock和ReentrantLock
  8. css 波纹扩散效果
  9. ftp信息或服务器信息,服务器:FTP报错信息怎么办
  10. 1394接口_电视机的音频输出接口
  11. 记录linq.js神器之gorup by 多个字段的方法
  12. GitHub 标星 8w!这个开源面试总结屌爆了!
  13. ada:世界上第一位程序员
  14. java循环26个字母_java基础 26个英文字母循环输出 13个字母空一行
  15. JWT expired at 2022-04-07T12:06:46Z. Current time: 2022-04-10T19:47:24Z, a difference of 286838865..
  16. 【编程语言】利用CImage类对图像像素的处理(图像二值化)
  17. 酬岑勋见寻就元丹丘对酒相待,以诗见招
  18. 连接数据库出现java.lang.NullPointerException
  19. 【网络】IP、域名、端口号和DNS域名解析之间的联系简介(给服务器添加域名来验证)
  20. 2021-06-15常见网安设备默认口令大全

热门文章

  1. 实现iPhone电子书的分页显示功能(附代码)
  2. 实现 iPhone 电子书的分页显示功能的代码 转载
  3. 国产数据库详细篇之ShenTong数据库
  4. 定义并调用函数 十进制转二进制_真有小伙伴不知道浮点数如何转二进制吗?...
  5. layoutinflater详解
  6. JAVA毕业设计家用饰品在线销售系统计算机源码+lw文档+系统+调试部署+数据库
  7. 介绍snipaste截图快捷键
  8. CES现场直击 AI让你现场获得虚拟双胞胎 1
  9. PostgreSQL 超越 MySQL,“世界上最好的编程语言”薪水偏低
  10. Oppo 安装quickgame及打包问题