linux权限问题
上次说到linux文件权限中的r,w,x权限分别是文件的读权限,写权限和执行权限,rwx中都没有提到删除权限(文件可以被删除),也就是说我们不需要特意设置文件的删除权限,他也是是可以被删除的。那么问题来了,如果这个文件不属于我们,我们能把它删除吗?
验证一下
如果文件就属于我,我把它删除了显然是没有问题的。
那么如何保证文件不属于我,我一定不能删除它呢?
于是我搜索了文件的相关知识,发现文件还有t权限,想要文件不能被其他人删除需要设置t权限。
这里就有必要说一下t权限和s权限了
SUID 表示在这个文件被执行时,执行者会有拥有者(user)的特权。
SGID 表示在这个文件被执行时,执行者会拥有所属组(group)的特权。
sticky-bit可以理解为防止删除位,设置了这个位可以保证文件拒绝被其他不属于他的用户删除。
设置时 可以使用 chmod u+s(g+s) 文件名的格式设置(如果文件拥有者(所属组)没有可执行权限,则会在对应的权限位上显示S,如果有则会显示s)。
也可以使用chmod 6774(4位八进制数) 文件名 的格式来进行设置。第一位设置s和t权限,SUID(4),,SGID(2),sticky-bit(1)。
当我们给每个文件的其他用户设置了t权限后,就可以防止其他用户删除了不属于自己的文件了。
find指令的选项
在linux终端下有很多指令功能很强大,其中find就是其中一条指令。
find指令可以添加很多选项
1.find 目录名
这条命令作用是找到该目录下的所有文件。
2.find -name (*)
find -name mytest 表示找出当前路径下的文件名为mytest的文件
find -name *.c 表示找出当前路径下的文件后缀名为.c的文件
3.find -user(-group)
find - user root表示找出拥有者(所属组)为root 的文件
4.find -perm
find-perm 664 找出文件权限为644的文件
5.find -(a|c|m)time
find -(a|c|m)time -1(+1)表示找出 a(c|m)time在 1天以内(以外)的文件
6.find -type
find -type d表示查找文件类型为目录的文件
p 管道文件
b 块设备文件
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
7.find -nouser(-nogroup)
find -nouser 表示查找无有效拥有者的文件
8.find -newer
find -newer code 表示查找更改时间比code新的文件
find !-newer 表示查找比。。旧的文件
9.find -prune
find -prune -o -name *.c 表示查找名字后缀不是.c的文件
prune 有除去的意思
10.find -depth
表示在当前目录查找后 ,再在其子目录下查找
以上是常用的find选项,find选项远不止这些,如果以后还用到一些可以继续补充。