find 명령은 루트가 아닌 사용자로서 파일을 찾을 수 없습니다(읽을 수 있음).

find 명령은 루트가 아닌 사용자로서 파일을 찾을 수 없습니다(읽을 수 있음).

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표준 에러화면에 표시하는 대신 비트버킷에 넣습니다).

관련 정보