当前位置:  开发笔记 > 运维 > 正文

如何在Linux下为socket生成随机文件名?

如何解决《如何在Linux下为socket生成随机文件名?》经验,为你挑选了1个好方法。

我想制作一个使用本地命名空间套接字的小程序,我需要使用临时文件名作为套接字的地址.

那么如何在Linux下生成随机文件名呢?

+我在Debian Linux下使用C编程语言.
+根据GNU C库参考,tmpname是不安全的.但安全的tmpfile和mkstemp 创建打开生成的文件.这里有任何安全非创建 - 打开.换句话说,该函数应禁止任何其他请求在特定目录下创建生成的文件名.

谢谢.



1> bdonlan..:

如果您在C中执行此操作,请使用mkdtemp创建目录,并将套接字放在此目录中.

其他功能,如tmpnammktemp不安全; 因为它们不会为您创建和打开临时文件,所以很容易易于将预先存在的符号链接(由猜测您的临时文件名的攻击者放置)发送到某个重要文件(如/etc/passwd),覆盖它.

请注意,没有办法"锁定"路径 - 你所能做的就是在那里创造一些东西.如果你最终需要在那里放一个套接字,那么使用目录作为占位符是你最好的选择.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有