RHCSA-A15.编写Shell脚本查找文件

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RHCSA-A15.编写Shell脚本查找文件相关的知识,希望对你有一定的参考价值。

红帽RHCE考试上午-RHCSA(RH134)

servera.example.com 任务

15.编写Shell脚本查找文件

  • 创建 SHELL 脚本,要求如下:

任务要求

  • 创建一个名为 myshell 的脚本
  • 该脚本放置在 /usr/local/bin 下
  • 该脚本用于查找 /usr 下所有大小在50K~10m 之间且具有修改组ID权限的文件,
  • 将这些文件放置于/root/myfiles下

完成步骤

  • 具有修改组ID权限的文件是说有特殊权限位SGID的文件,数字表示为2000
  1. 先创建目标目录
    mkdir /root/myfiles
  2. 先用find命令找一下文件
    find /usr -type f -and -perm 2000 -and -size +50k -size -10m
  3. 能找到的话给添加拷贝的内容写到脚本中
vim myshell
#!/bin/bash
find /usr -type f -and -perm 2000 -and -size +50k -size -10m  -exec cp -av {}  /root/myfiles \\;
  1. 记得给执行权限

chmod a+x myshell

考察的知识点

根据文件大小搜索

  • -size 文件的大小

100M 表示100M-1M到100M

1024m 表示1023到1024不包括1023
1G 表示0到1G不包括0

 dd if=/dev/zero of f1.img bs=1M cont=100

 find -size 100M -ls #找到的是99M-100M不包括99M可以是100M德文件

找大于100M德文件
find -size +100 -ls #表示找到的是大于100M单不包括100M的文件

根据文件的权限搜索

  • -perm
find -perm 600 -ls 搜索权限为600的文件
find -perm /600 -ls 斜杠表示或者,表示所有者有读r4或者写w2的权限都行,但至少有一个
find -perm -600 -ls 横线表示并且,表示所有者必须有r4且必须有w2的权限

并且和或,至少2个权限以上才有意义,只有一个都一样

特殊权限

  • 特殊权限SUID -perm 4000
## SUID只对二进制可执行程序有效,启动为进程之后,其进程的属主为原程序文件的属主
chmod u+s FILE...
chmod 4xxx FILE
chmod u-s FILE...
  • 特殊权限SGID -perm 2000
## SGID设在二进制可执行程序文件上,启动为进程之后,其进程的属组为原程序文件的属组
chmod g+s FILE...
chmod 2xxx FILE
chmod g-s FILE...
## SGID设在目录上,在此目录中新创建的文件所属的组继承此目录的属组,即具有修改组ID权限的文件
chmod g+s DIR...
chmod 2xxx DIR
chmod g-s DIR...
  • 特殊权限 Sticky 位 -perm 1000
## Sticky位设在目录上,只有文件的所有者或root可以删除该文件,其他用户或者属组用户就算有w权限也不能删除目录中文件
chmod o+t DIR...
chmod 1xxx DIR
chmod o-t DIR...

特殊权限位的映射关系

  • SUID: user,占据属主的执行权限位
s:属主拥有x权限
S:属主没有x权限
原来:-rwxrw-r--
设后:-rwsrw-r--
  • SGID: group,占据属组的执行权限位
s: group拥有x权限
S:group没有x权限
原来:drwxrw-r--
设后:drwxrwSr--
  • Sticky: other,占据other的执行权限位
t:other拥有x权限
T:other没有x权限
原来:drwxrwxrwx
设后:drwxrwxrwt

以上是关于RHCSA-A15.编写Shell脚本查找文件的主要内容,如果未能解决你的问题,请参考以下文章

RHCSA-A12.在文件中查找指定的字符串

Linux定是调用shell脚本删除文件

编写一个 shell 脚本,该脚本将返回您的存储库 git [重复] 跳过的文件列表

Shell脚本学习指南 [ 第四章 ] 查找与替换文本处理工具

Unix shell 脚本 - 使用 /bin/sh shell 查找以前的日期

shell脚本:通过在文件夹中的所有文件中搜索来查找字符串? [复制]