我有一个需要帮助的 bash 脚本:
#!/bin/bash
if [ -f "/suid.old" ]
then
find / -perm -4000 -o -perm -2000 ls > suid.old
else
find / -perm 4000 -o -perm -2000 ls > suid.new
diff suid.old suid.new > newchanges.list
fi
当我运行它时,它给了我一个错误消息:diff:suid.old:没有这样的文件或目录。
我的脚本应该说,如果 suid.old 不存在,则使用 find 命令创建一个,或者使用 find 命令对 suid.new 执行所需的任何操作。找到它所做的任何更改并将其重定向到 newchanges.list
请帮忙,
if
从语句中的文件名中删除斜杠。您拥有它的方式是检查根目录中的文件,但稍后它会在当前目录中创建。此外,您的脚本基本上说“如果 suid.old不存在,那么做一个差异”。
你可能想要这样的东西:
这说:“如果 suid.old 不存在,创建它。如果 suid.new 不存在,创建它。现在它们已经创建(或已经存在)做差异。”
从查找行中删除“ls”。他们应该看起来像
find / -perm -4000 -0 -perm -2000 > suid.old
你设置它的方式 find 认为 ls 是一个路径参数。由于 find 将结果打印到 STDOUT,因此只需执行正常重定向即可获得所需的输出。
我的版本: