chattr\lsattr
文件属性日寄
跟着老司机上路第一天,整了个配测试环境的活,本以为装个虚拟机啥的轻轻松松,没想到全程翻车连连,唉,生产环境就是不一样,怀念在自己电脑上瞎折腾的日子
升级个内核,用的是老司机给的rpm包,安装方法参考以下两篇
https://blog.csdn.net/weixin_42606075/article/details/121583730
http://www.manongjc.com/detail/24-hnvnxalxsrkoppk.html.
yum一键安装,装完awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
查看内核列表,寄了,怎么没有新装上去的内核,往上一翻记录,看到显示这么一行报错
grubby: error moving /boot/grub2/grub.cfg- to /boot/grub2/grub.cfg: Operation not permitted
惊了,我堂堂root用户,居然动个文件还会被Operation not permitted
百度了一番全是不知所云,求助老司机,排查一通,lsattr /boot/grub2/grub.cfg
显示文件有个i权限,chattr -i /boot/grub2/grub.cfg
去掉权限,后成功移动文件,再看列表就能看到新装的内核了,经老司机分析大概是前面某个跑的安全脚本干的好事
chattr\lsattr
chattr指令可改变linux文件系统的文件属性,这个属性得用lsattr才能看到,上面造成root都不能移动文件就是因为grub.cfg被人加上了i属性
语法:
chattr [option] +-=属性 obj
参数
-R 递归处理目录下的所有文件
-v 设置文件或目录版本
-V 显示指令执行过程
+ 开启文件或目录的该项属性
-- 关闭文件或目录的该项属性
= 指定文件或目录的该项属性
属性
a:让文件或目录仅供附加用途;***
i:不得任意更动文件或目录; ***
A:当一个具有“A”属性的文件被访问时,它的atime记录不会被修改;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
j:如果文件系统安装有“data=order”或“data=writeback”选项,则具有“j”属性的文件在写入文件本身之前将其所有数据写入ext 3日志;
s:当删除具有“s”属性集的文件时,其块将被归零并写回磁盘;
S:当修改具有“S”属性集的文件时,更改将同步写入磁盘;这相当于应用于文件子集的“同步”挂载选项;
u:当删除具有‘u’属性集的文件时,它的内容将被保存
示例:使得日志文件只能追加数据,不能删除或者修改
chattr +a /var/log/messages
补充:如果vi/vim修改发现无法保存文件,还有可能是文件目录不存在,得先去创建目录