您的位置:首页 > 运维架构 > Linux

继续探讨linux文件权限的问题以及find指令的选项

2017-04-04 13:13 363 查看

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选项远不止这些,如果以后还用到一些可以继续补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: