Linux查找命令行为不端
在最近的漏洞披露之后搜索系统解析的服务,我看到了find命令的一个非常奇怪的行为.
root@localhost:/# find . -name "*systemd-resolved*" ./usr/share/man/man8/systemd-resolved.service.8.gz ./usr/share/man/man8/systemd-resolved.8.gz 该命令返回0或两行作为第一次运行的输出.但如果我第二次运行命令: root@localhost:/# find . -name "*systemd-resolved*" ./usr/share/man/man8/systemd-resolved.service.8.gz ./usr/share/man/man8/systemd-resolved.8.gz ./lib/systemd/systemd-resolved ./lib/systemd/system/systemd-resolved.service.d ./lib/systemd/system/systemd-resolved.service 这意味着第一次,“发现”实际上并没有找到所有东西.这也只发生过一次.下次运行该命令会显示正确的输出.我在安装了Debian 8(jessie)的其他系统上检查过这个.对于那些使用Kernel 4.9的人来说,这个确切的问题总是会发生,但在内核3.16的系统上却不会发生. -rw-r--r-- 1 root root ./usr/share/man/man8/systemd-resolved.service.8.gz lrwxrwxrwx 1 root root ./usr/share/man/man8/systemd-resolved.8.gz -> systemd-resolved.service.8.gz -rwxr-xr-x 1 root root ./lib/systemd/systemd-resolved drwxr-xr-x 2 root root ./lib/systemd/system/systemd-resolved.service.d -rw-r--r-- 1 root root ./lib/systemd/system/systemd-resolved.service 编辑:对于所有建议问题的人可能与这些特定文件的特定案例有关: root@localhost:/# find . -name "*apache*" 这里没有人能够使用backport存储库中的最新内核在Debian 8上检查此问题吗? 解决方法
Debian 8上安装的findutils的默认版本是4.4.2,这是jessie存储库的最新版本.
我下载了findutils源代码的最新版本(4.6.0)并从源代码构建了二进制文件.然后我做了相同的测试,“find”命令显示第一次运行的正确输出. 然后我从gnu archive下载了findutils版本4.4.2源代码并进行了编译.编译的find命令也发生了同样的问题.所以findutils 4.6.0不会出现这个问题. 但是我仍然不知道为什么有些用户使用findutils 4.4.2(Debian上安装的实用程序的默认版本)得不到相同的结果,并且不知道为什么Debian应该仍然与这个旧版本的findutils一起发布以及可能的其他Linux实用程序并导致这种有问题的情况.最后一件事是,奇怪发生的确切技术原因仍然是未知的,这是不可取的.因为我不确定我的操作系统环境中是否存在令人担忧的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |