1
Linuxのfindコマンドの動作がおかしい
最近の脆弱性の公開に続いてシステムで解決されたサービスを検索すると、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または2行を返します。しかし、2回目にコマンドを実行すると、次のようになります。 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 これは、初めて「find」が実際にすべてを見つけるわけではないことを意味します。また、これは一度だけ発生します。次にコマンドを実行すると、正しい出力が表示されます。Debian 8(jessie)がインストールされている他のシステムでこれをチェックしました。カーネル4.9+を使用している場合、この正確な問題は常に発生しますが、カーネル3.16を使用するシステムでは発生しません。 システムの再起動後、このすべてが再び起こります。ただし、個々のシステムの動作は同じです。つまり、特定のシステムでのテストが最初の実行で2行の出力を返し、2回目の実行で正しい出力を返す場合、システムの再起動後のコマンドの最初の実行は2行を出力します。そのため、システムは各リブート後に同じ動作を示します(私のテストによると)。ファイルの詳細は次のとおりです。 -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 編集:これらの特定のファイルのこの特定のケースにおそらく関連する問題を提案するすべての人々に:「システム解決」はちょうど例です。これは、他のキーワードも検索するときに発生します。これは、最初の実行で間違った結果を与える別の例です。 …