2

我从这个站点下载了这个shell 脚本。

对于 bash 脚本来说,它非常大。所以我用文本编辑器打开它,发现代码后面有很多无意义的字符。

我害怕赋予脚本执行权chmod +x jd.sh。你能告诉我如何识别它是否安全或如何在系统中设置它的有限权限吗?

谢谢你

4

3 回答 3

2

“无意义字符”表示直接包含在 SH 文件中的二进制文件。该脚本将使用文件本身作为文件存档并根据需要复制/提取文件。对于 SH 安装程序来说,这并不稀奇。(编辑:例如,makeself

与其他软件一样,几乎不可能确定运行脚本是否“安全”。

于 2011-11-25T13:06:13.583 回答
1

不要运行它!该网站在我工作的地方被封锁,因为众所周知它会提供恶意软件。

现在,至于验证代码,如果不将其完全隔离(技术上很困难,但如果没有已知漏洞,VM 可能会提供服务)并运行它以观察它的实际作用,这是不可能的。在使用第三方软件时,适度的不信任总是有用的,但当然没有人有时间验证他们运行的所有软件,甚至是其中的一小部分。这将需要数千(更可能是数百万)年的工作,并且会发现足够多的错误让开发人员再忙一千年。您通常能做的最好的事情就是只运行由您至少在某种程度上信任的人创建或至少推荐的软件。信任必须根据您自己的标准来确定,但这里有一些对我有利的软件:

  • 主要操作系统/发行版的一部分。这意味着一些更大的组织已决定信任它。
  • 源代码是公开的。至少任何由公司政策引起的恶意软件(参见 Sony CD debacle)都会有更大的机会被发现。
  • 源代码分布在适当的平台上。像 GitHub 这样的网站可以让你衡量软件的流行度并跟踪它发生了什么,而没有任何评论功能、版本控制或错误数据库的随机网站是保存有用代码的糟糕地方。
于 2011-11-25T12:58:10.370 回答
1

虽然脚本的来源似乎不可信(IP 地址?),但这可能仍然是合法的。使用 shell 脚本,可以在末尾附加二进制内容,从而构建一种安装程序。多年前,Sun 会以这种形式发布 Solaris 的 JDK。不过,我不知道情况是否仍然如此。

如果您想毫无风险地测试它,我会在 VirtualBox(免费虚拟机软件)中安装 Linux,在那里运行脚本并查看它的作用。

附录看看它的作用: UNIX 上有多种工具可用于分析二进制程序,如 strace、ptrace、ltrace。可能还有趣的是使用chroot运行脚本。这样您就可以轻松找到所有已安装的文件。

但在一天结束时,这可能会产生更多不易检查的二进制文件(可能任何防病毒软件的开发人员都会告诉你)。因此,如果您根本不信任源,请不要运行它。或者,如果您必须运行它,请在至少不会造成太大损坏或访问您的任何数据的 VM 中执行它。

于 2011-11-25T13:16:38.857 回答