Linux文件权限与属性详解 之 一般权限

Linux文件权限与属性详解 之 ACL

Linux文件权限与属性详解 之 SUID、SGID & SBIT

Linux文件权限与属性详解 之 chattr & lsattr

Linux文件权限与属性详解 之 su & sudo

前言

在Linux中,有一些系统文件,对系统的运行有着至关重要的作用,如/etc/fstab等,一般不允许修改,这个时候,我们可以赋予文件/目录r--------的权限;然而,还有一个更为简单有效的命令chattr可以实现该功能!

特殊权限

特殊权限的要求:

  • 所支持的文件系统包括:ext2ext3ext4xfs
  • 一般要求内核版本不低于2.2(查看版本的命令如下):

uname -a

lsb_release -a

  • 不能保护 / /tmp /dev /var目录
  • chattr 只能由root用户使用

chattr、lsattr

类似于chmod, chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的.

1). chattr 语法:

chattr [ -RVf ] [ -v version ] [ mode ] files...

最关键的是在[mode]部分,[mode]部分是由+-=[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的属性。

  • + : 在原有参数设定基础上,追加参数
  • - :在原有参数设定基础上,移除参数
  • = :更新为指定参数设定
  • A :文件或目录的 atime (access time)不可被修改(modified),可以有效预防例如手提电脑磁盘I/O错误的发生
  • a :即append,设定该参数后,只能向文件中添加数据,而不能删除;
  • c :即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
  • i :设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容;对目录
  • s :保密性地删除文件或目录,即硬盘空间被全部收回
  • u :与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.

2). lsattr 语法:

lsattr [ -RVadv ] [ files...  ]

参数如下:

  • a : 列出目录下的所有文件,包括隐藏文件
  • d : 查看本目录自身的权限

3). 例程:

首先,我使用root身份新建一个文件:

[root@niesh test]# ll
总用量 0
-rw-rw-r--. 1 root niesh 0 7月 31 20:27 abc

然后,我给该文件增加 i 权限:

[root@niesh test]# chattr +i abc
[root@niesh test]# lsattr abc
----i----------- abc

然后,我尝试增加内容、删除文件和修改文件名:

[root@niesh test]# echo 1234 >> abc
bash: abc: 权限不够
[root@niesh test]# rm -f abc
rm: 无法删除"abc": 不允许的操作
[root@niesh test]# mv abc bcd
mv: 无法将"abc" 移动至"bcd": 不允许的操作

以上均失败,由此验证!

修改以上文件的权限为 a :

[root@niesh test]# chattr +a abc
[root@niesh test]# lsattr abc
-----a---------- abc

abc文件进行操作:

[root@niesh test]# echo 1111 >> abc
[root@niesh test]# cat abc
1111
[root@niesh test]# rm -f abc
rm: 无法删除"abc": 不允许的操作
[root@niesh test]# mv abc bcd
mv: 无法将"abc" 移动至"bcd": 不允许的操作

由以上可以看出,只能增加文件内容,不能进行其他的操作!

最新文章

  1. NK3C程序资源占用分析
  2. android ListView点击item返回后listview滚动位置
  3. Linux中增加软路由的两种方法/删除的方法
  4. ER模型到关系模型的转换规则
  5. libgdx如何调用android平台内容
  6. richedit设置滚动条的位置和更新内容
  7. Javascript Jquery 中的数组定义与操作_子木玲_新浪博客
  8. Git 远程分支的pull与push
  9. form enctype参数
  10. 初始MyBatis
  11. Jquery实现选项卡效果
  12. MongoDB官网配置项目整理
  13. asp.net core 2.1 部署 centos7
  14. HTML中的table导出为Excel文件
  15. jQuery实例之ajax请求json数据案例
  16. python找出数组中第二大的数
  17. Codeforces 581F Zublicanes and Mumocrates - 树形动态规划
  18. day12Flume、azkaban、sqoop
  19. spring boot 使用war包部署
  20. python2.7 环境配置

热门文章

  1. 隐藏Spring Elements
  2. Day05 (黑客成长日记) 文件操作系列
  3. linux系统中使用socket直接发送ARP数据
  4. PHP引用(&)练习
  5. 程序员基层知识程序与cpu【更新1】
  6. CSU1333最短路问题SPFA
  7. hbuilder下用plus.barcode.Barcode做二维码扫描,当二维码容器的高度设置过低时,启动扫描会发生闪退
  8. day_10初级函数
  9. python 导入模块出错 ImportError: No module named 'request'
  10. SSAS 内部错误:操作未能成功