ubuntu 对下载的文件有特殊处理吗?

ubuntu 对下载的文件有特殊处理吗?

有一个脚本可以向我的 /etc/hosts 文件添加额外的行以启用本地开发。由于它非常有用,我决定将其保留为要点。

当我的一个朋友下载了 shell 脚本、更改了必要的权限并尝试运行它时,失败了。

显示的错误是:

$ ./dev-mode

: 没有这样的文件或目录

尽管该脚本在我的计算机上完美运行。 /etc/hosts 文件存在于我们的两台计算机上,权限和所有者都相同。一切都绝对相似。

然后他创建了一个新文件,将脚本的内容复制到新文件中,并更改了必要的权限,然后它就运行了!

在我看来,这两个文件之间没有任何可以想象的差异,但 diff 确实表明了它们的差异,但没有突出显示任何行或任何字符...什么都没有。权限相同,等等。

ubuntu 是否会以不同的方式处理下载的文件并阻止其运行?

完全相同的文件,一个运行,另一个不运行

答案1

本质上是的。当你从互联网上下载文件时,你获取的数据是里面文件。

您没有获取的是应用于文件的权限。这是在您的本地文件系统上完成的。

要使文件在本地系统上可执行,请进入终端并运行

chmod +x filename.sh

这会告诉你的文件系统将该特定文件视为可执行文件。

这是有原因的。假设你要下载一个文件,该文件的权限允许任何人在您的计算机上运行它。这显然存在安全风险。

相关内容