chmod -R无法赋权

Linux chmod命令无法修改文件权限问题

supervisor启动node服务是遇到一个问题
在这里插入图片描述
很明显是文件权限问题,导致文件不可执行
在这里插入图片描述

于是连上服务器,用命令chmod -R 777 node修改文件权限,却很神奇的报错了(我用的是root账户)

chmod: changing permissions of ‘node’: Operation not permitted
在这里插入图片描述
于是执行lsattr node查看文件属性
在这里插入图片描述
发现了一个i的属性,尝试chattr命令去掉i属性再重新赋权,chattr -i node(chmod底层实现了chattr命令)

在这里插入图片描述
执行成功了,再次查看权限啊
在这里插入图片描述
最后再见i属性添加回来chattr +i node;
在这里插入图片描述
这里在简单的百度了一下文件属性的一些含义:
A : 当设置了A属性时,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免例如手提电脑有磁盘I/O错误的情况发生。

S : 这个功能有点类似sync.就是将数据同步写入磁盘中。可以有效地避免数据流失。

a : 设置a之后,这个文件将只能增加数据,而不能删除,只有root才能设置这个属性。

c : 这个属性设置之后,将会自动将此文件“压缩”,在读取的时候将会自动解压缩,但在存储的时候,将会先进行压缩后再存储(对于大文件有用)。

d : 当执行dump(备份)程序的时候,设置d属性将可使该文件(或目录)具有转储功效。

i : i的作用很大。它可以让一个文件“不能被删除、改名、设置连接,也无法写入或新增数据”。对于系统安全性有相当大的帮助。

j : 当使用ext3文件系统格式时,设置j属性将会使文件在写入时先记录在journal中。但是,当文件系统设置参数为data=journalled时,由于已经设置日志了,所以这个属性无效。

s : 当文件设置了s参数时,它将会从这个硬盘空间完全删除。

u : 与s相反,当使用u来设置文件时,则数据内容其实还存在磁盘中,可以用来还原删除。

注意:这个属性设置上,比较常见的是a与i的设置值,而且很多设置值必须要root才能设置。

猜你喜欢

转载自blog.csdn.net/pjw1217/article/details/111156821