gpt4 book ai didi

linux - 在脚本中创建临时文件 : Advantages of mktemp over touch-ing a file?

转载 作者:IT老高 更新时间:2023-10-28 12:36:43 27 4
gpt4 key购买 nike

虽然我可以使用 mktemptouch 创建临时文件,但 mktemp 对脚本编写的可靠性和/或安全性有什么好处只是手动touch文件?

最佳答案

mktemp 随机化名称。从安全的角度来看,这非常重要。

想象一下你做了这样的事情:

echo something > /tmp/temporary-file

在您的根运行脚本中。

有人(读过你的剧本)会这样做

ln -s /etc/passwd /tmp/temporary-file

之前。

这会导致 /etc/passwd 被覆盖,并且可能意味着从系统开始的不同不愉快的事情被破坏,并以系统结束被黑客入侵(当输入 something 可以精心制作)。

mktemp 命令可以在这种情况下为您提供帮助:

TEMP=$(mktemp /tmp/temporary-file.XXXXXXXX)
echo something > ${TEMP}

现在这个 ln/etc/passwd 攻击将不起作用。

对 mktemp 历史的简要了解:mktemp 命令由 OpenBSD 人员发明,并于 1997 年首次出现在 OpenBSD 2.1 中。他们的目标是提高 shell 脚本的安全性。以前的规范是在临时文件名中添加 $$,这绝对是不安全的。现在所有的 UNIX/Linux 系统都有 mktemp 或它的替代品,它成为事实上的标准。有趣的是,mktemp C 函数因不安全而被弃用。

关于linux - 在脚本中创建临时文件 : Advantages of mktemp over touch-ing a file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11636790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com