Linux chmod命令 修改文件权限被禁止(not permitted)的解决办法

1. chattr权限简介

chattr - change file attributes on a Linux file system.

也就是说chattr命令的作用是改变linux文件系统中指定的文件的属性。

chatrr权限是一种非常特殊的权限,它设置的属性对超级用户root也有效。只不过,它设置的属性也可以通过root来删除。

归根结底,chattr的作用是防止用户(包括root)对文件或目录进行误操作(比如修改或删除)的一种保险手段。

2. chattr命令格式

chattr [+-=][选项] 文件或目录名

+:增加权限(属性)
-:删除权限(属性)
=:设置权限(属性)
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

选项:

  • i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据,也就是说只能查看文件;如果对目录设置i属性,那么只能修改目录中文件的数据,但不允许建立和删除文件。
  • a:如果对文件设置a属性,那么只能以追加的方式(>>)给文件增加数据,但不能删除和修改数据,也就是说无法用vi编辑器编辑保存文件;如果对目录设置a属性,那么只能在目录中建立新文件和修改文件的内容,但不允许删除文件。

常见用法:

[root@localhost tmp]# chattr +i a.txt
给/tmp/a.txt文件增加i属性

[root@localhost tmp]# echo 111 >> a.txt
-bash: a.txt: 权限不够
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

3. 查看文件的系统属性

命令格式:lsattr [选项] 文件名

选项:

-a:显示目录中所有的子文件和子文件夹(包括隐藏文件)
-d:如果操作对象是目录,仅列出目录本身的属性
  • 1
  • 2
  • 1
  • 2

常见用法:

[root@localhost tmp]# lsattr a.txt
----i--------e- a.txt
可以发现,小写字母i表示该文件被设置了i属性。

你可能感兴趣的:(运维)