虽然我可以使用 mktemp
和 touch
创建一个临时文件,但是 mktemp
手动编写脚本有什么好处 touch
文件?
原文由 Shehbaz Jaffer 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然我可以使用 mktemp
和 touch
创建一个临时文件,但是 mktemp
手动编写脚本有什么好处 touch
文件?
原文由 Shehbaz Jaffer 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答799 阅读✓ 已解决
2 回答3.2k 阅读
mktemp
随机化名称。从安全的角度来看,这是非常重要的。想象一下,你做了类似的事情:
在您的根运行脚本中。
有人(读过你的剧本)确实
前。
这会导致
/etc/passwd
被覆盖,并且可能意味着从系统开始的不同不愉快的事情被破坏,并以系统结束被黑客入侵(当输入something
可以精心制作时)。mktemp
命令可以在这种情况下帮助您:现在这个
ln /etc/passwd
攻击将不起作用。_简要了解 mktemp 的历史_:
mktemp
命令由 OpenBSD 人员发明,并于 1997 年首次出现在 OpenBSD 2.1 中。他们的目标是提高 shell 脚本的安全性。以前的规范是在临时文件名中添加$$
,这是绝对不安全的。现在所有的 UNIX/Linux 系统都有mktemp
或者它的替代品,它成为事实上的标准。有趣的是,mktemp
C 函数因为不安全而被弃用。