Linux 上的任何 sudo 命令都会出现“Exec 格式错误”

Linux 上的任何 sudo 命令都会出现“Exec 格式错误”

每当我使用涉及 sudo 的命令时,我都会收到错误-bash: /usr/bin/sudo: cannot execute binary file: Exec format error,即使对于像sudo rebootsudo ls、 之类的命令sudo cd,与可执行文件无关,这真的很烦人。在尝试通过运行 Linux 的 Raspberry Pi 重新启动后,它似乎突然出现,我还没有看到任何相关问题。

答案1

该错误不是关于rebootls,而是关于sudo其本身。错误消息清楚地表明它来自 Bash,并提到了有问题的文件 ( /usr/bin/sudo)。

错误“Exec format error”是错误代码,由系统调用ENOEXEC返回exec*()

可执行文件的格式无法识别、适用于错误的体系结构,或者存在一些其他格式错误,这意味着它无法执行。

你的二进制文件有问题sudo。它要么以某种方式损坏,要么您的二进制文件适用于错误的机器(例如 ARM 上的 x86 二进制文件)。file /usr/bin/sudo也许能够告诉你一些事情(如果你有的话file),与例如 的输出进行比较file /bin/ls,假设可行。

另外,值得一提的是:您通过 sudo 运行的所有内容都与可执行文件有关。reboot可能是/sbin/reboot一个可执行的二进制文件;ls可能是/bin/ls一个可执行的二进制文件。并且sudo cd可能会出现错误,因为大多数 Linux 发行版没有cd二进制文件(它几乎没有用)。

答案2

我收到了上述错误消息,因为我的bash脚本-基于询问通行证可执行文件丢失哈希邦标记。

添加

#!/bin/bash

到脚本的开头(也许还可以使用 使脚本可执行chmod +x)解决了问题。

相关内容