findコマンドは、root以外のユーザーとしてファイルを見つけることができません(読み取り可能)。

findコマンドは、root以外のユーザーとしてファイルを見つけることができません(読み取り可能)。

find私のファイルを読むことができるにもかかわらず、なぜそれが見つからないのかを見つけようとします。

/some次のディレクトリを設定しました

drwxr-xr-x  2 root root  4096 Sep 23 16:45 some

誰でも読むことができます。ディレクトリには次のディレクトリがあります。foundme.txt

-rw-r--r--  1 root student 157961 Sep 23 16:48 foundme.txt

今、学生ユーザーとしてこのファイルを見つけようとすると、権限エラー以外には結果が表示されません。私が理解したように、ディレクトリとファイルは学生が読むことができます。

なぜこれが失敗するのかを説明できる人はいますか?

$ find / -name "foundme.txt"
find: ‘/root’: Permission denied

ベストアンサー1

このfindコマンドは、ファイルシステムツリーの先頭から始まり、/名前がfoundme.txt。そのフォルダに行く途中には、アクセスできない他の多くのディレクトリ(たとえば、以下の多くの擬似ディレクトリ)/someが含まれます。/root/proc

そのため、findこれらのディレクトリのファイルをスキャンできないという警告が表示されます。

十分に長く置いておくと、findファイルがであることがわかります。コマンドの最後に追加して/some/foundme.txtエラー/警告メッセージを削除することもできます。2>/dev/null標準エラー画面に表示するのではなく、ビットバケットに入れます)。

おすすめ記事