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