Linux에서 sudo 명령을 실행하면 "Exec 형식 오류"가 발생합니다.

Linux에서 sudo 명령을 실행하면 "Exec 형식 오류"가 발생합니다.

sudo와 관련된 명령을 사용할 때마다 실행 파일과 관련이 없는 또는 같은 명령 -bash: /usr/bin/sudo: cannot execute binary file: Exec format error에 대해서도 오류가 발생합니다. 이는 정말 짜증나는 일입니다. Linux를 실행하는 Raspberry Pi를 통해 재부팅을 시도한 후 갑자기 나타나는 것 같은데 아무런 문제도 발견되지 않았습니다.sudo rebootsudo lssudo cd

답변1

오류는 reboot또는 에 관한 것이 아니라 그 자체 ls에 관한 것 입니다 sudo. 오류 메시지는 해당 오류가 Bash에서 발생했음을 명확하게 나타내며 문제의 파일( /usr/bin/sudo)을 언급합니다.

"Exec 형식 오류" 오류는 시스템 호출에서 ENOEXEC반환된 오류 코드입니다.exec*()

실행 파일이 인식할 수 없는 형식이거나, 잘못된 아키텍처용이거나, 실행할 수 없음을 의미하는 기타 형식 오류가 있습니다.

바이너리에 문제가 있습니다 sudo. 어떤 방식으로든 손상되었거나 바이너리가 잘못된 시스템용입니다(예: ARM의 x86 바이너리). 예를 들어 작동한다고 가정하면 의 출력과 비교할 수 있는 file /usr/bin/sudo내용을 알려줄 수 있습니다 .filefile /bin/ls

또한 언급할 가치가 있습니다. sudo를 통해 실행하는 모든 것은 실행 가능 항목과 관련되어 있습니다. 실행 가능한 바이너리 reboot일 수도 있고 , 실행 가능한 바이너리 일 수도 있습니다 . 그리고 대부분의 Linux 배포판에는 바이너리가 없기 때문에 오류가 있을 수 있습니다 (거의 쓸모가 없습니다)./sbin/rebootls/bin/lssudo cdcd

답변2

위의 오류 메시지를 받은 이유는 내배쉬 스크립트-기반패스에 대해 물어보세요실행 파일이 누락되었습니다.해시본표시.

다음에 추가

#!/bin/bash

스크립트의 시작 부분으로 이동하면(그리고 Make Script Executable을 사용하여 chmod +x) 문제가 해결됩니다.

관련 정보