sudo와 관련된 명령을 사용할 때마다 실행 파일과 관련이 없는 또는 같은 명령 -bash: /usr/bin/sudo: cannot execute binary file: Exec format error
에 대해서도 오류가 발생합니다. 이는 정말 짜증나는 일입니다. Linux를 실행하는 Raspberry Pi를 통해 재부팅을 시도한 후 갑자기 나타나는 것 같은데 아무런 문제도 발견되지 않았습니다.sudo reboot
sudo ls
sudo cd
답변1
오류는 reboot
또는 에 관한 것이 아니라 그 자체 ls
에 관한 것 입니다 sudo
. 오류 메시지는 해당 오류가 Bash에서 발생했음을 명확하게 나타내며 문제의 파일( /usr/bin/sudo
)을 언급합니다.
"Exec 형식 오류" 오류는 시스템 호출에서 ENOEXEC
반환된 오류 코드입니다.exec*()
실행 파일이 인식할 수 없는 형식이거나, 잘못된 아키텍처용이거나, 실행할 수 없음을 의미하는 기타 형식 오류가 있습니다.
바이너리에 문제가 있습니다 sudo
. 어떤 방식으로든 손상되었거나 바이너리가 잘못된 시스템용입니다(예: ARM의 x86 바이너리). 예를 들어 작동한다고 가정하면 의 출력과 비교할 수 있는 file /usr/bin/sudo
내용을 알려줄 수 있습니다 .file
file /bin/ls
또한 언급할 가치가 있습니다. sudo를 통해 실행하는 모든 것은 실행 가능 항목과 관련되어 있습니다. 실행 가능한 바이너리 reboot
일 수도 있고 , 실행 가능한 바이너리 일 수도 있습니다 . 그리고 대부분의 Linux 배포판에는 바이너리가 없기 때문에 오류가 있을 수 있습니다 (거의 쓸모가 없습니다)./sbin/reboot
ls
/bin/ls
sudo cd
cd
답변2
위의 오류 메시지를 받은 이유는 내배쉬 스크립트-기반패스에 대해 물어보세요실행 파일이 누락되었습니다.해시본표시.
다음에 추가
#!/bin/bash
스크립트의 시작 부분으로 이동하면(그리고 Make Script Executable을 사용하여 chmod +x
) 문제가 해결됩니다.