
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
標準エラー画面に表示するのではなく、ビットバケットに入れます)。