Unix Linux 目录比较

Unix Linux 目录比较

我有一个已知的良好目录结构,我想将其所有者/组和权限与另一台服务器进行比较,并标记需要更改的任何文件/文件夹。由于我无法同时访问这两台服务器,因此我想编写比较脚本,以便它遍历目录并将任何不准确的信息输出到文件中。

有人在另一个问题中写了一个脚本:find / -type d -printf "chmod %m %p \n" > reset_perms.sh,该脚本强制降低权限。我想比较并输出更改,而不是强制降低它们。

你能帮我吗?

答案1

有一个脚本某人在另一个问题中写道: find / -type d -printf "chmod %m %p \n" > reset_perms.sh 强制降低权限。我想比较并输出更改,而不是强制降低它们。

无需打印出运行更改权限的命令,只需调整 printf 以输出 uid、gid、mode 和 fullpath,然后将输出发送到文件即可。然后,正如 womble 提到的,使用 diff 比较这两个文件。

$find / -printf "%U, %G, %m, %p\n" > permissions.txt

0, 0, 755, /bin
0, 0, 755, /bin/chgrp
0, 0, 755, /bin/tar
0, 0, 755, /bin/dir
0, 0, 777, /bin/sh
0, 0, 777, /bin/pidof
0, 0, 777, /bin/bzless
0, 0, 755, /bin/zgrep
...

答案2

在两棵树上运行ls -lR,然后使用 diff 进行比较。

答案3

助手高级入侵检测环境 (AIDE) 是 UNIX 操作系统的文件完整性检查器。其目的是提供有关受支持文件系统上数据完整性的报告。通过在目标主机上多次运行 AIDE,您可以确定哪些文件正在更改。通过在不同的主机上多次运行 AIDE,您可以确定哪些文件和权限不同。

可能有点过头了。还有其他文件完整性检查器可用。

相关内容