如何解决为什么带有 -u 选项的 mktemp 在其手册中被声明为不安全?
我想创建一个临时文件并且正在阅读 mktemp 手册,发现带有 -u 选项的 mktemp 被声明为不安全,这背后的原因是什么?
mktemp --help
Usage: mktemp [OPTION]... [TEMPLATE]
Create a temporary file or directory,safely,and print its name.
TEMPLATE must contain at least 3 consecutive 'X's in last component.
If TEMPLATE is not specified,use tmp.XXXXXXXXXX,and --tmpdir is implied.
Files are created u+rw,and directories u+rwx,minus umask restrictions.
-d,--directory create a directory,not a file
-u,--dry-run do not create anything; merely print a name (unsafe)
解决方法
当您使用 -u
时,不会创建任何文件,因此以后使用该名称并不能保证访问您创建的临时文件。
在调用 mktemp
和使用结果之间有一个机会让另一个进程创建具有该名称的文件。该文件可能是一个符号链接,允许其他用户滥用您的权限在某处写入。
如果您使用 mktemp -u
,您需要非常小心地确保此类竞赛不可利用。
通常,最好创建一个临时目录 (mktemp -d
),并在该目录中使用您选择的名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。