栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在bash中创建临时文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在bash中创建临时文件

mktemp(1)
手册页解释了它相当好:

传统上,许多shell脚本使用pid作为后缀来命名程序名称,并将其用作临时文件名。这种命名方案是可预测的,并且它创造的竞赛条件很容易使攻击者获胜。一种更安全(尽管仍然较差)的方法是使用相同的命名方案创建一个临时目录。虽然这样做确实可以保证不会破坏临时文件,但它仍然允许进行简单的拒绝服务攻击。由于这些原因,建议使用mktemp代替。

在脚本中,我调用mktemp之类的东西

mydir=$(mktemp -d "${TMPDIR:-/tmp/}$(basename $0).XXXXXXXXXXXX")

它会创建一个我可以使用的临时目录,并可以在其中安全地命名实际文件,使之可读易懂。

mktemp
虽然不是标准的,但是它确实存在于许多平台上。“
X”通常会转换为某种随机性,更多的可能更随机;但是,某些系统(如busybox灰)对这种随机性的限制比其他系统更大


顺便说一句,临时文件的安全创建不仅对shell脚本而言重要。这就是python具有tempfile,perl具有File
::
Temp

,ruby具有Tempfile等的原因。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/405641.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号