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)、問題が解決します。

関連情報