1、 隐藏权限
设置隐藏权限:chattr [+|-选项] 文件|目录
选项:
i:无法修改文件,如果目录设置了此权限,则仅能修改其目录中的文件,而不能创建或删除文件。
a:只能追加内容,无法覆盖或删除内容
S:文件内容在变更后立即同步到硬盘
s:彻底从硬盘中删除,不可恢复
A:不再修改文件或目录的atime
b:不再修改文件或目录的存储时间
D:检查压缩文件中的错误
d:使用dump命令备份时忽略本文件或目录
c:默认对文件或目录进行压缩
u:删除文件后依然保留其在磁盘中的数据,方便日后恢复
t:让文件系统支持尾部合并
X:可以直接访问压缩文件中的内容
查看文件或目录隐藏权限:lsattr [-a | -R] 文件或目录
i:拥有权限,无法修改文件,就算是root用户,照样无权直接修改。当然root用户可以取消特殊权限,再去修改文件。
a权限
test.txt、test2文件都有隐藏权限,去掉隐藏权限,就可以删除了,如下图:
删除成功。
2、文件访问控制列表ACL
setfacl:设置文件ACL规则,语法:setfacl [选项] 文件|目录
选项:
-R:递归设置
-m:针对普通文件
删除ACL:setfacl -b 文件|目录
查看ACL:getfacl 文件|目录
3、文件特殊权限SUID、SGID、SBIT
·SUID:让二进制程序的执行者临时拥有属主的权限(仅对有执行权限的二进制程序有效)。
SUID用s表示,也可以用4表示。原文件有x权限时,添加SUID后,x变为s,如果原文件没有x权限,添加后用S表示。
·SGID:让二进制程序的执行者临时拥有属组的权限(仅对有执行权限的二进制程序有效)。如果目录设置此权限,则目录中创建的文件自动继承该目录的用户组。
SUID用s表示,也可以用2表示。
·SBIT:粘滞位。目录中的文件只能被其所有者可以删除,其他人不能删除,用t或1表示。如果原文件有x权限,设置后为t,如果原文件没有x权限,设置后为T。
file 文件名:查看文件类型。例如:
设置SUID:
设置SGID:
设置SBIT:
test.txt文件没有x权限,设置SUID后属主权限为rwS
用数字表示权限,设置演示:
[root ~]# touch test2
[root ~]# chmod 4777 test2
第1个数字:表示特殊权限
第2个数字:属主权限
第3个数字:属组权限
第4个数字:其他人权限
上图,文件权限后面有.和+两种。
.:表示没有设置ACL
+:表示已经设置ACL
4、软、硬连接
软连接:类似于windowns的快捷方式,原文件删除后,连接文件打不开。
ln [选项] 原文件 目标文件
选项:
-s:创建软连接(默认是创建硬链接)
-f:强制创建
-i:覆盖前询问
-v:显示创建过程
硬链接:两个文件的inode是一样的。删除原文件不会影响连接文件。不支持对目录做硬链接。
5、find命令
find [查找路径] [查找条件] [处理动作]
查找路径:指定具体路径,默认为当前目录
查找条件:可以根据文件名、文件大小、类型、权限等进行查找,默认为找出指定路径下的所以文件
处理动作:对符合条件的文件做什么操作,默认为输出到屏幕。
查找条件:
5.1、根据文件名查找
-name 文件名
-iname 文件名:不区分大小写
-regex "模式"
5.2、根据属主属组查找
-user 用户名
-group 组名
-uid UID
-gid GID
-nouser:无属主
-nogroup:无属组
5.3、根据文件类型查找
-type 类型
f:普通文件,b:块设备,p:管道,d:目录,s:套接字文件
l:符号链接,c:字符设备
5.4、根据文件大小查找
-size [+ | - | ] 数字单位
数字前无符号,表示(数字-1,数字],如:
-size 3k:表示大于2k,小于等于3k
-size -3k:表示[0k,2k],大于等于0k,小于等于2k
-size +3k:表示(3,),大于3K
5.5、根据时间戳查找
天:-atime,-mtime,-ctime
分钟:-amin,-mmin,-cmin
例如,3天:
-3:3天之内,也就是[0,3)
3:[3,4),3到4天,包括3天,但不包括4天
+3:3天之前,也就是[4,无穷大)
6、根据权限查找
-perm [/|-] 权限
/权限:任何一类(u,g,o)对象的权限中只要有一位匹配即可。
-权限:每一类对象必须同时拥有指定的权限才匹配。
-644:只有满足644权限的文件才会被找到
/644:只要至少含有644中的一种或以上权限的文件都会被找到
处理动作:
-print:默认处理动作,显示至屏幕。
-ls:类似ls -l
-delete:删除找到的文件
-fls 文件名:查找到的所有文件的长格式信息保存到文件中
-ok 命令 {} \; :对查找到的文件执行指定的命令,执行命令前提示用户。
-exec 命令 {} \; :对查找到的文件执行指定的命令,执行命令前不提示用户。
注意:find传递找到的文件至后面的指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令。
有些命令不能接收过多的参数,可以使用:find | xargs 命令
例1:查找/etc/目录下所有用户都没有写权限的的文件。
例2:查找/etc/目录下,最近一周内修改过,且不属于root用户的所以文件和目录
例3:查找/etc/目录中至少有一类用户没有执行权限的文件。
6、Linux与windows互传文件
安装lrzsz包,使用lz、sz命令即可。使用lz、sz传输文件,大小不能超过2G。
yum install lrzsz -y
除此外,还可以使用samba、ftp等服务实现Linux与Windows互传文件。
7、文件后缀名
Linux中区分文件并不像Windows那样严格区分,当然,为了好区分,文件还是需要后缀名。比如,脚本文件后缀为.sh。