디렉터리 경로를 명령으로 실행하면 "명령을 찾을 수 없음" 대신 "권한 거부"가 반환되는 이유는 무엇입니까? [복사]

디렉터리 경로를 명령으로 실행하면 "명령을 찾을 수 없음" 대신 "권한 거부"가 반환되는 이유는 무엇입니까? [복사]

나는 redhat 복서이고 실수로 dir이전에 경로가 없었던 경로에 들어가면 경로를 얻게 된다는 것을 알았습니다. 내가 헛소리를 입력한 것처럼:cd/path/to/dir/: Permission denied./path/to/dir/: Command not found

$ sldkfjsd
sldkfjsd: Command not found.

이것의 목적은 무엇입니까? 슈퍼유저로 명령을 실행하면 dir(액세스 권한이 없음 ) sudo어떻게 됩니까 ?

답변1

이런 방식으로 디렉터리를 실행할 수 있는 권한이 없기 때문에 권한이 거부되었습니다. 일반적으로 CLI에 파일 이름만 입력하고 다른 이름은 입력하지 않으면 해당 파일을 실행하겠다는 의미입니다. 그러나 디렉토리의 경우 실행 권한은 다른 의미를 가지므로 해당 디렉토리에 대한 실행 권한이 없습니다.

실제로 디렉터리를 실행하려면 일반적으로 해당 파일 인덱스를 나열해야 하지만 이진 실행 파일처럼 실행할 수는 없습니다.

라는 실행 파일이 있으므로 CLI에 입력 /bin/ls하면 해당 실행 파일이 호출되어 실행됩니다. /bin/ls이제 (디렉토리)에 들어가려고 하면 /binBash가 똑같은 일을 하고 실행 파일처럼 호출하려고 하지만 디렉토리이기 때문에 실행 파일처럼 실행할 권한이 없습니다.

답변2

예를 들어 PNG 이미지나 기타 이해되지 않는 작업을 실행하려고 하면 허용되지 않습니다. 파일의 경우 파일할 수 있다프로그램이 포함될 수 있으므로 권한 비트를 통해 실행 가능하게 만듭니다(모든 명령은 실제로 기계 코드를 포함하고 실행 가능한 일반 파일입니다). 디렉토리나 하드 드라이브를 실행하는 것은 결코 의미가 없습니다. 그래서 허가가 없습니다.

관련 정보