1.介绍
chattr可用于更改Linux文件系统上的文件属性。比如linux修改文件命令免费linux主机,使用chattr将某个文件设置为’i’属性(不可更改)linux 软件,则虽然在root用户下给文件chmod成777模式,也是难以更改、删除和重命名的。可利用这个命令对个别文件进行锁定。chattr可作用于文件或目录。
相应的,lsattr命令用于复印文件的属性。
2.chattr命令2.1选项
-R递归地作用于所有子目录及文件(默认不递归)。
-V将chattr命令的输出显得详尽些linux修改文件命令,但是会复印出chattr命令的版本。
-f不复印错误信息。
-vversion给文件设置一个版本号。
2.2命令用法
命令格式如下:
chattr[-RVf][-vversion][mode]files…
即,对文件’files’设置为属性’mode’。其中mode可以设置为“+-=[acdeijstuADST]”。
比如:
[jc_gbd@ubuntu]test:$ sudo chattr +a main.c
上述mode中:
可以同时降低/删掉/设置多个属性。
另外,还有一些文件固有或只读的属性,chattr难以修改,但仍可以通过lsattr命令查看到:
3.lsattr命令
通过lsattr复印文件属性的用法很简单,形如:
[jc_gbd@ubuntu]test:$ lsattr main.c
-------A-----e- main.c
也可以加选项,不仅前面介绍的-R,-V,-v选项,lsattr还有如下选项:
-a列举隐藏文件(’.’开头的文件名)。
-d像文件一样复印目录的属性(只列举目录,而不列举目录中内容)。
4.使用限制
属性’c’,‘s’和’u’可能在内核中并没有实现。’j’只适用于ext3文件系统。
chattr属于e2fsprogs包的一部份,因而可觉得你系统中的chattr命令和文件系统肯定是配套的。也意味着chattr/lsattr主要用于ext2/ext3/ext4文件系统中的文件或目录(可通过mount命令查看你要修改属性的文件是否坐落ext文件系统中)。
实际上,只要文件系统在内核中实现了相应操作的ioctl(request为FS_IOC32_SETFLAGS/FS_IOC_SETFLAGS)的处理,就可以支持chattr。诸如jfs、ubifs、reiserfs等文件系统目前也支持了chattr命令处理。对于不支持该命令的文件系统(如tmpfs、vfat、fuseblock等),在执行chattr时会报错:
[jc_gbd@ubuntu]run:$ sudo chattr +i call.sh
chattr: Inappropriate ioctl for device while reading flags on call.sh