我正在运行 Debian 测试,但无法运行任何二进制文件或 shell 脚本。对于二进制文件,我不断收到“没有这样的文件或目录”的提示,而对于可执行 shell 脚本,我不断收到“权限被拒绝”的提示。umask 是默认的,我还没有调整路径。此外,我知道这问题,但对我来说不起作用——我在这台机器上编译了我的代码并试图在同一台机器上运行它。此外,我的所有 shell 脚本都有正确的 shebang。
有什么建议吗?
编辑:我没有运行任何 Armor 或 SELinux 类型的应用程序。
答案1
更多信息(包括终端会话的复制/粘贴)会很有帮助。但需要立即检查的是二进制文件和脚本是否具有正确的权限(通常为模式 0755)。仔细检查脚本中的 shebang 行是否指向有效的二进制文件。在二进制文件上运行“file”命令,以确保它是适合您的体系结构的真正二进制文件。当然,并非所有二进制文件都会出现“没有这样的文件或目录”的情况,否则您将无法编译代码。尝试“which”命令,看看您的 shell 是否可以找到您尝试运行的二进制文件(例如,“which date”查看如果您输入“date”,将运行哪个命令),并确保它找到了您认为要运行的命令(有时命令出现在您的 PATH 中较早的位置,而您不知道)。
答案2
对于二进制文件,这是文件或 shell 的问题。尝试在或上使用sh
或tcsh
重新下载/重新安装它(如果您自己制作了它,您可以尝试重新编译它)。bash 本身是一个二进制文件,如果您可以访问 shell,则可以访问二进制文件,问题出在文件和/或 shell 中。
对于 shell 脚本,如果错误是“权限被拒绝”,我会使用 添加执行权限chmod a+x filename
。执行权限是 UNIX 系统提供的一种保护形式。没有此权限,您无法运行脚本或二进制文件。