前言
在Linux中,有一些系统文件,对系统的运行有着至关重要的作用,如/etc/fstab等,一般不允许修改,这个时候,我们可以赋予文件/目录r--------的权限;然而,还有一个更为简单有效的命令chattr可以实现该功能!
特殊权限
特殊权限的要求:
所支持的文件系统包括:ext2、ext3、ext4和xfs
一般要求内核版本不低于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": 不允许的操作
由以上可以看出,只能增加文件内容,不能进行其他的操作!
Linux文件权限与属性详解 之 SUID、SGID &; SBIT
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
Linux文件权限与属性详解 之 一般权限
目录 一般属性 1. iNode: 3152621 2. 文件类型 3.文件访问权限 4. 链接数目: 5. 文件所有者 6. 文件所属组 7. 文件大小 8. 修改时间 9. 文件名称 Linux文 ...
Linux文件权限与属性详解 之 ACL
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
Linux文件权限与属性详解 之 su &; sudo
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
Linux文件权限与属性详解 之 SUID、SGID&;SBIT
一.SetUID 1.Linux普通用户可以修改自己的密码,这个是一个合情合理的设置; 修改密码其实修改的是/etc/shadow这个文件,这个文件的属性: ----------. 1 root ro ...
轻松学习Linux之Shell文件和目录属性详解
轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...
Linux文件查找命令 find 详解
关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权 ...
linux学习7 Linux文件系统功能和作用详解
一.终端 1.用户界面 GUI: GNome KDE CLI: bash,zsh,sh,csh,tcsh,ksh 2.远程连接 a.ssh协议. 查看系统是否监听于tcp协议的22号端口: ss - ...
Linux文件处理命令 ls 详解
Linux系统的应用场景最多的就是用作服务器的系统了,简洁,安全,高效,一般我们服务器端不会安装Linux的图形化界面,虽然现在一些Linux发行版的图形界面也很漂亮,但是,服务器最主要的是高效.所以 ...
随机推荐
【WCF】自定义错误处理(IErrorHandler接口的用法)
当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...
C++去掉字符串首尾的 空格 换行 回车
/* *去掉字符串首尾的 \x20 \r \n 字符 */ void TrimSpace(char* str) { ; char *end = str; char *p = str; while(*p ...
css写一个梯形
D ...CSS选择符类型
一.标签选择符:针对某一类标签,可以以标签作为选择符
uva10791
#include using namespace std; int main(int argc, char *argv[]) { int j,k,m=0,flag; ...
iOS多线程的初步研究3
iOS多线程的初步研究(三) 弄清楚NSRunLoop确实需要花时间,这个类的概念和模式似乎是Apple的平台独有(iOS+MacOSX),很难彻底搞懂(iOS没开源,呜呜). 官网的解释是说run ...
android官方技术文档翻译——设计时布局属性
本文译自androd官方技术文档:http://tools.android.com/tips/layout-designtime ...
C#学习笔记(32)——委托改变窗体颜色
说明(2017-11-23 22:17:34): 1. 蒋坤的作业,点击窗体1里面的按钮,出现窗体2:点击窗体2里的按钮,窗体1改变背景色. 2. 做完窗体传值后,这个作业就很简单了. 代码: For ...
使用transient关键字解决ehcache序列化错误
使用Ehcache时发现个不起眼的小问题 在一个Model中有以下代码: public class MyModel implements Serializable { private static f ...
获取响应里面的cookie的方法
使用方法: R.cookies.get_dict() 获取响应返回的cookies