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

本文介绍了如何编写一个Shell脚本来查找在/usr目录下大小在50K到10M之间且具有SGID权限的文件。脚本创建在/usr/local/bin下,命名为myshell,它使用find命令定位符合条件的文件,并将它们复制到/root/myfiles目录。内容涉及到find命令的-size、-perm参数以及SGID权限的设置和检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

红帽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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值