find / -perm -4000 -o -perm -2000> suid ..帮助bash脚本每晚运行。

帮我解决这个问题。 到目前为止,我已经find了“find / -perm-4000 -o -perm -2000 | xargs ls -l> suild.list”参数,我想写成一个bash脚本。

我想写这个作为一个bash脚本,并能够每天运行在这个每晚。 但我不熟悉Unix的脚本语言。

对于crontab作业,我需要写为* 24 * * *? 我认为? 但是我很难写作剧本。

在这种情况下没有必要使用xargs 。 只要使用-ls可以find

 #!/bin/bash find / -perm -4000 -o -perm -2000 -ls > suild.list 

如果您想邮寄并通过附加到文件logging它:

 #!/bin/bash find / -perm -4000 -o -perm -2000 -ls | tee -a suild.list 

你的命令已经是一个bash脚本。

你需要添加一个头文件:

 #!/usr/bin/env bash 

你需要在脚本上设置可执行文件(+ x)​​。

如果你想把结果邮寄给pipe理员,你可以在最后删除redirect到suild.list。

!/斌/庆典

find / -perm -4000 -o -perm -2000 -ls | tee -a suild.list

如果想要创build完整的脚本,如何使用if / else语句。 例如我想说如果这个suild.list文件不存在,那么使用find命令来生成新的suid,否则使用find / -perm -4000 -o -perm -2000 -ls | tee -a suild.list参数,并且如果有任何新的suid被创build,则比较更改。 出于安全原因。

这听起来像你没有想要一个完整的列表每次脚本运行,而是任何新/不知名的文件列表设置suid / GUID。 如果那样的话:

获取当前结果的列表:

 # find / -path '/proc' -prune -perm -4000 -o -perm -2000 /usr/bin/write /usr/bin/wall /usr/bin/crontab /usr/bin/locate /usr/bin/ssh-agent 

创build一个shell脚本,查找和比较结果与以前的列表。 该列表只是脚本中的一个variables。 你可以把它当成自己的文件。

 #!/bin/bash approved=" /usr/bin/write /usr/bin/wall /usr/bin/crontab /usr/bin/locate /usr/bin/ssh-agent " results=$(/usr/bin/find / -path '/proc' -prune -perm -4000 -o -perm -2000) for line in $results; do if ! echo -n $approved | /bin/grep -q $line; then ls -a $line fi done 

新文件出现时的结果:

 # ./suid_check.sh /sbin/netreport 

把它扔在cron中,并configurationcron来发送STDOUT。