linux之 find命令的伟大 及粘滞位权限

find

1.命令解释:在目录结构中搜索文件,并执行指定的操作。
2.命令格式:
    find  pathname -options [-print -exec -ok ....]

  pathname:  find命令所查找的目录路径。例如,.表示当前目录,/表示系统根目录。
   -print:   find命令将匹配的文件输出到标准输出.
    
   
   -exec:   find命令对匹配的文件执行该参数所给出的shell命令。例如,-execs ls {} \;
  
   -ok:      和-exec作用相同,不过在每执行一个命令前给出提示,让用户决定是否执行。
  
    ps:此处没有显示正常结果,是因为当前用户的权限不够。


3.命令选项:
  -name: 按照文件名查找文件。
   
  -perm: 按照文件权限查找文件。
  
  -prune:可以使find命令不在当前指定的目录中查找。
           如果同时使用-depth选项,那么该命令的作用将被忽略。
  -user: 按照文件属性查找文件。
    
  -group:按照文件所属的组来查找文件。
  
  -mtime -n +n:按照文件内容的更改时间查找文件。
                     -n表示文件更改时间距现在n天之内,
                    +n表示文件更改时间距现在n天以前。
  
  -atime -n +n:按照文件访问的更改时间查找文件。
                      -n表示文件更改时间距现在n天之内,
                    +n表示文件更改时间距现在n天以前。
  
  -ctime -n +n: 按照文件属性的更改时间查找文件。
                      -n表示文件更改时间距现在n天之内,
                    +n表示文件更改时间距现在n天以前。

   -nogroup:查找无有效所属组的文件,即该文件所属组在/etc/groups中不存在。

  

   -nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

  

   -newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件。

   -type:查找某一类型的文件。

           例如: b --块设备文件

                      d --目录

                      c --字符设备文件

                      p --管道文件

                       l --符号链接文件

                       f --普通文件

  

  

  -size n[c]:查找文件长度为n块的文件,带有c时表示文件长度以字节计算。

               例如:在~/code/ 目录下查找大小为4096字节的文件

   

  -depth:查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

            例如:查找file.

  

  -fstype:查找位于某一文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件包                括了系统中有关文件系统的信息。

  -mount:在查找文件时不跨越文件系统mount点

  -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

  -cpio:将匹配的文件备份到磁带设备中。

相关例子:

1.查找/目录下文件名为test的目录

  

 ps:加上sudo后,以root的权限执行命令

2.查找当前所有目录并排序

  

3.查找所有目录名称中按照“.log”结尾的目录

  

4.查找系统中最近5分钟访问的文件

  

5.查找系统中最近5天访问的文件

  

6.查找当前目录下所有权限为664的文件,并设置为775

  

执行命令后:

  

7.查找文件大小为0字节的文件,并删除

  

执行命令后:

  


粘滞位权限

定义:当目录被设置了粘滞位权限后,即便用户对该目录有写入权限,也不能删除该目录中其他用户的文件数据,而是只有该文件的所有者和root用户才有劝将其删除。


那么,为什么要设置它呢?

以root用户登录,创建一个temp目录,将其权限设为777

  

接着在temp目录下创建一个文件temp,查看其权限

  

切换回普通用户删除temp,看可不可以?

 

 由temp的权限可知,理论上普通用户是没有权限删除的。事实上却删除了。为什么呢?

  因为普通用户从/temp目录获得了“rwx”权限,所以可以删除。


  Linux系统中有很多这样的目录,比如“/tmp”,"/var/tmp"目录,这两个目录的权限为777,即允许任意用户,任意程序在该目录中进行随意操作。然而,若任意一个用户都能删除系统服务运行中使用的临时文件,将造成严重的后果。

  

因此,产生了粘滞位权限。设置了它之后,正好保持一种动态的平衡:允许各用户在目录中任意写入,删除数据,但是禁止随意删除其他用户的数据。设置粘滞位的目录,其他用户权限的“x”变成“t”.

  粘滞位权限只能针对目录设置,对于文件无效。

  

那该如何设置呢?

  粘滞位权限都是针对other用户设置。如同设置"r","x","w"一样,使用chmod命令设置。

  chmod o+t 目录名 ----添加粘滞位权限

  chmod o-t 目录名 ----移除粘滞位权限 

  

 

 

  



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值