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
- 先创建目标目录
mkdir /root/myfiles
- 先用find命令找一下文件
find /usr -type f -and -perm 2000 -and -size +50k -size -10m
- 能找到的话给添加拷贝的内容写到脚本中
vim myshell
#!/bin/bash
find /usr -type f -and -perm 2000 -and -size +50k -size -10m -exec cp -av {} /root/myfiles \\;
- 记得给执行权限
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脚本查找文件的主要内容,如果未能解决你的问题,请参考以下文章
编写一个 shell 脚本,该脚本将返回您的存储库 git [重复] 跳过的文件列表
Shell脚本学习指南 [ 第四章 ] 查找与替换文本处理工具