在 MacOS 中运行 ./file.sh 时出错:未找到 ss 命令

在 MacOS 中运行 ./file.sh 时出错:未找到 ss 命令

运行时./file.shsudo sh file.sh出现错误

ss command not found.

也尝试过chmod u+x file.sh
我使用 MacOS

显示错误的图像

答案1

在 docker-bench-security.sh 中替换

req_progs='awk docker grep ss stat'

req_progs='awk docker grep lsof stat'

答案2

有几件事你应该清楚:-

  1. sh 脚本是否包含这样的 shebang #!/bin/sh?位置可能因您的系统而异。尝试which sh在您的终端中找到它

  2. 如果 shebang 不存在,那么执行./file.sh就没有意义,因为脚本不会自行找到解释器

  3. 您必须sh file.sh运行该脚本。

你为什么要运行sudo sh ./file.sh?你想以提升的权限运行它吗?

所以我想你可能想要实现这个目标:-

  • chmod 700 file.sh(我个人更喜欢用八进制来分配权限)

  • ./file.sh(如果脚本的第一行就存在 shebang)

  • 如果没有的话sh file.sh(为此你甚至不需要使脚本可执行)

说到您看到的错误,您错误地输入shss;)

答案3

@Jose - 您使用的是 docker-bench-security.sh 脚本,其中第 27 行有 ss 命令(@daya 指出)。由于 mac os 不支持 ss,您可以在脚本中用 netstat 替换 ss,并以以下方式运行脚本:sh docker-bench-security.sh(如果脚本不使用 shebang)

相关内容