chattr命令简介 在linux系统中,文件的属性在某种程度上决定了文件的活动方式。一个属性可以决定文件是否可以被修改、删除、重命名,压缩等等。chattr可以修改linux系统中文件、文件夹的属性。可以设置文件的属性,让其具有一定的安全性,保证除了管理员之外的用户不能够修改文件中的内容。文件属性模型 下面是文件可以设置的部分属性:A:当用户访问文件时,事件记录不会被修改。a:文件只能以追加模式(append)写入。c:磁盘上的文件自动被内核压缩。D:修改被同步写入磁盘。d:当dump程序执行时,文件不会被备份。E:表明压缩文件有一个压缩错误。e:该文件正在使用区段映射磁盘上的块。I:文件被htree代码使用,即一个文件夹通过hash来索引。i:一个文件不可以被修改:不能被删除、重命名、不能创建link、不能写入数据。j:具有j属性的文件在写入文件本身之前,将其所有数据写入ext3日志。s:当一个带有s属性集的文件被删除时,它的块被置零并写回磁盘。S:当文件被修改,变化将被同步写入磁盘。chattr和lsattr命令的语法 chattr命令的语法:sudochattr〔option〕〔mode〕files mode的格式为:〔acdeijstuADST〕 被用来添加属性。 用来删除选中的属性。 表明选中的属性为最终设置的属性。 chattr一次可以设置多个属性。 option支持的选项:R:递归修改一个文件夹及其所有子文件、子文件夹的属性。V:显示命令详细信息和版本信息。f:不显示错误消息 lsattr命令语法:lsattr〔option〕file option选项:R:递归修改一个文件夹及其所有子文件、子文件夹的属性。V:显示命令详细信息和版本信息。a:显示文件夹下所有文件。示例1lsattr显示文件或文件夹的属性 lsattr命令的参数为一个文件或者文件夹,从而查看他们的属性。lsattrfile 示例:yunzhongDESKTOP9VB7LN7:tmplsattrawktesteawktestyunzhongDESKTOP9VB7LN7:tmplsattr。e。header。awke。print。awke。python7036178842941535246e。friutes。txtnewe。friutes。txte。cat。temp。filee。friutes。txt2e。cmd。awke。testdire。lse。hsperfdatayunzhonge。awktest 如果没有指定任何的文件或者文件夹,则lsattr列举当前文件夹下所有的文件属性。yunzhongDESKTOP9VB7LN7:tmplsattre。header。awke。print。awke。python7036178842941535246e。friutes。txtnewe。friutes。txte。cat。temp。filee。friutes。txt2e。cmd。awke。testdire。lse。hsperfdatayunzhonge。awktest2chattr修改文件属性,只能以append的模式打开 为文件添加‘a’属性,让其只能被append模式打开。sudochattrafile 示例:yunzhongDESKTOP9VB7LN7:tmplsattrfriutes。txtefriutes。txtyunzhongDESKTOP9VB7LN7:tmpsudochattrafriutes。txtyunzhongDESKTOP9VB7LN7:tmplsattrfriutes。txtaefriutes。txtyunzhongDESKTOP9VB7LN7:tmpechohelloworldfriutes。txtbash:friutes。txt:OperationnotpermittedyunzhongDESKTOP9VB7LN7:tmpechohelloworldfriutes。txt 为文件添加‘a’权限后,只能追加内容到文件,不能覆盖文件。3使用chattr命令让文件不可变 可以为文件添加属性i,让文件不可变。从而保证文件不可以被删除,修改,重命名。chattrifile 示例:yunzhongDESKTOP9VB7LN7:tmpsudochattrifriutes。txtyunzhongDESKTOP9VB7LN7:tmpmvfriutes。txtfriutes。txt。bakmv:cannotmovefriutes。txttofriutes。txt。bak:Operationnotpermitted4使用chattr命令删除文件属性 可以使用来删除文件属性。sudochattrattributefile 示例:yunzhongDESKTOP9VB7LN7:tmplsattrfriutes。txtiaefriutes。txtyunzhongDESKTOP9VB7LN7:tmpsudochattrifriutes。txtyunzhongDESKTOP9VB7LN7:tmplsattrfriutes。txtaefriutes。txtyunzhongDESKTOP9VB7LN7:tmpechohelloagainfriutes。txtbash:friutes。txt:OperationnotpermittedyunzhongDESKTOP9VB7LN7:tmpechohelloagainfriutes。txt5chattr指定文件的属性 使用来设置文件的属性。 命令格式:sudochattrattrfile 示例:yunzhongDESKTOP9VB7LN7:tmpsudochattrefriutes。txtyunzhongDESKTOP9VB7LN7:tmplsattrfriutes。txtefriutes。txt6lsattr命令递归的查询文件夹下所有文件的属性 可以使用R选项,递归展示文件夹下所有文件。lsattrRdir 示例:yunzhongDESKTOP9VB7LN7:tmplsattre。header。awke。print。awke。python7036178842941535246e。friutes。txtnewae。friutes。txte。cat。temp。filee。friutes。txt2e。cmd。awke。testdire。zeppelinindexe。python340083847531222206e。lse。hsperfdatayunzhonge。awktestyunzhongDESKTOP9VB7LN7:tmplsattrRe。header。awke。print。awke。python7036178842941535246。python7036178842941535246:e。python7036178842941535246mplconfig。pye。python7036178842941535246py4jsrc0。10。7。zipe。python7036178842941535246backendzinline。pye。python7036178842941535246zeppelincontext。pye。python7036178842941535246zeppelinpython。pye。friutes。txtnewae。friutes。txte。cat。temp。filee。friutes。txt2e。cmd。awke。testdir。。。7chattr命令递归修改文件夹下所有的文件属性 与lsattr相似,可以使用R参数递归修改文件夹下所有的文件属性。sudochattraRdir 示例:yunzhongDESKTOP9VB7LN7:tmplstestdirtestfiletestfile2yunzhongDESKTOP9VB7LN7:tmpsudochattraRtestdiryunzhongDESKTOP9VB7LN7:tmplsattrtestdiraetestdirtestfile2aetestdirtestfile8使用lsattr命令查看文件夹下所有的文件 a参数可以输出文件夹下所有的文件,包括’。‘开头的文件。lsattra〔dir〕 示例:yunzhongDESKTOP9VB7LN7:tmplsattra。e。header。awke。print。awke。python7036178842941535246e。friutes。txtnewe。friutes。txte。cat。temp。filee。friutes。txt2e。cmd。awkae。testdire。zeppelinindexe。python340083847531222206e。lse。hsperfdatayunzhonge。。。e。awkteste。。9。lsattr只输出文件夹属性 一般情况下,lsattr会输出指定文件夹内的文件属性。可以通过d属性,只输出文件夹的属性。命令格式。lsattrddir 示例:yunzhongDESKTOP9VB7LN7:tmplsattrdtestdiraetestdir10打开或消除错误提示信息 当执行chattr命令时,会在终端提示错误信息。使用f参数可以关闭错误提示信息,但并不是所有的错误信息都会被关闭。chattrfafile 示例:yunzhongDESKTOP9VB7LN7:tmpchattrafriutes。txtchattr:Operationnotpermittedwhilesettingflagsonfriutes。txtyunzhongDESKTOP9VB7LN7:tmpchattrfafriutes。txtyunzhongDESKTOP9VB7LN7:tmp11chattr输出版本信息 默认情况下,chattr没有任何输出。可以使用V参数输出信息,同时也输出了chattr命令的版本信息。sudochattrVafile 示例:yunzhongDESKTOP9VB7LN7:tmpsudochattrVafriutes。txt〔sudo〕passwordforyunzhong:chattr1。45。5(07Jan2020)Flagsoffriutes。txtsetasae12lsattr输出文件的版本、生成号等信息lsattrvfile 示例:yunzhongDESKTOP9VB7LN7:tmplsattrvfriutes。txt3866499331aefriutes。txt