디렉터리를 실행하는 동안 권한이 거부되었습니다.

디렉터리를 실행하는 동안 권한이 거부되었습니다.

나는 Linux 파일 시스템에서 Docker와 Kubernetes를 사용하고 실행 파일을 실행하려고 시도했습니다(결과는 디렉터리입니다).
권한을 엉망으로 만들었다고 생각하게 만드는 "권한 거부" 오류가 발생했지만 확인해보니 모든 것이 정확했습니다.
나중에 나는 이것이 내가 실행하려고 했던 디렉토리라는 것을 알아차렸습니다.

내 질문은 이 경우 "디렉터리를 실행할 수 없습니다" 또는 이와 유사한 오류 대신 "권한 거부" 오류가 발생하는 것이 얼마나 합리적인가입니다.

저는 Linux에 대한 경험이 많지 않기 때문에 이 질문이 낯설게 보일 수도 있지만 미리 답변해 주셔서 감사합니다.

배포판: 데비안 10. FS: 확장4

답변1

"권한 거부"는 파일 권한 비트가 요청한 액세스 권한을 부여하지 않는 경우 일반적으로 나타나는 EACCES 오류 코드입니다.

맞습니다. EISDIR("디렉토리입니다")와 같은 것이 더 의미가 있을 수 있습니다. FIFO 사용과 같은 보다 일반적인 경우에는 다른 것이 필요합니다. 오류 메시지가 이제 파일 형식(Linux의 "Exec 형식 오류")을 참조하더라도 ENOEXEC가 이를 수행할 수 있습니다. 이것은 당신이 얻는 일반 파일이고 충분한 권한이 있지만 운영 체제가 파일을 인식하지 못합니다.

"일반 파일이 아님"에 대한 표준 오류는 없다고 생각합니다.

어쨌든 그렇죠POSIX에서 EACCES로 지정됨:

[EACCES].
새 프로세스 이미지 파일은 일반 파일이 아니며 이 구현은 해당 유형의 파일 실행을 지원하지 않습니다.

선택 뒤에 실제 논리적 이유가 있는지는 모르지만, 이 경우 일반적인 이유는 처음에 해당 작업을 수행하고 다른 모든 시스템에 복사한 다음 호환성을 위해 보관하는 것이라고 제안하고 싶습니다. 100% 정확히 일치하지 않는 유일한 오류 코드일 수는 없습니다.

관련 정보