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

    xiaoxiao2021-03-29  34

    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选项远不止这些,如果以后还用到一些可以继续补充。

    转载请注明原文地址: https://ju.6miu.com/read-664818.html

    最新回复(0)