在 Linux 上,命令行程序 mktemp 是否不如 C 函数 mkstemp 安全?

2024-02-09

这两个操作都会创建一个空文件并返回文件名,但 mkstemp 使文件以独占模式打开并为您提供句柄。 C 功能有安全优势吗?这是否意味着命令行版本存在安全漏洞?

顺便说一句,有趣的是,Linux 上的 C api 中有几个相关函数,其中大多数在其手册页中都说“不要使用此函数”(或类似的函数)。


在类 Unix 操作系统(包括 Linux 和 Mac OS)中处理临时文件的一个技巧是,一旦打开该文件,就将其删除。您仍然可以访问该文件,但没有其他人可以看到它或对其执行任何操作,并且一旦您关闭文件,它就会消失,即使您的程序可怕地死亡。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Linux 上,命令行程序 mktemp 是否不如 C 函数 mkstemp 安全? 的相关文章

  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少

随机推荐

  • 具有共享依赖项的嵌套ExternalProject_Add

    我正在尝试申请ExternalProject Add自动安装中型 C 项目的依赖项 事情进展顺利 直到我不得不安装一个使用的库ExternalProject Add安装它的依赖项之一 我自己的项目也恰好使用了它 如果我可以避免重建这个库 而
  • bash 多个命令行参数相互依赖

    我有一个脚本 其中接受以下参数 脚本 dph peh 第一个参数告诉脚本我是否需要使用生产脚本或开发脚本来执行它 第二个参数告诉脚本生成的报告的输出是否应作为电子邮件发送或应重定向到 html 页面 当我使用 getopts 时 我得到一个
  • 使用php将上传的excel文件转换为csv

    我正在尝试使用 php 创建一个网页 该网页使用浏览按钮上传 excel 文件并将其导入到 mysql 数据库中 我可以上传 csv 文件并将其导入数据库 html代码
  • 具有 MVC 4 或 5 的 MEF - 可插拔架构 (2014)

    我正在尝试使用 Orchard CMS 等可插入架构构建 MVC4 MVC5 应用程序 所以我有一个 MVC 应用程序 它将作为启动项目并负责身份验证 导航等 然后将有多个模块单独构建为 asp net 类库或剥离的 mvc 项目并具有控制
  • 字符串中包含的方法的调用名称

    如何根据 Groovy 中字符串的值调用方法 例如代替 switch val case one Obj one break case two Obj two break 我想做类似的事情obj val where val包含 one or
  • 如何列出 Android 10 上的所有 pdf 文件?

    由于更改与访问共享存储的授权相关 因此似乎不再可能通过这种方法搜索 pdf 类型的所有文档 使用 requestLegacyExternalStorage false ContentResolver cr context getConten
  • 用 boost 精神解析布尔表达式

    我正在尝试使用 boostspirit 编写布尔表达式的解析器 我在 stackoverflow com 上找到了一个很好的例子 C 中的布尔表达式 语法 解析器 https stackoverflow com questions 8706
  • 如何制作累积序列?

    假设我有一个如下所示的惰性序列 def s iterate inc 1 take 10 s gt 1 2 3 4 5 6 7 8 9 10 现在 我想生成一个累积和的序列s像下面这样 gt 1 3 6 10 15 我怎样才能做到这一点 我尝
  • 如何使用 Promise 递归地读取目录树

    我正在尝试编写一个函数 该函数可以完成与使用带有承诺模式的回调模式编写的以下内容相同的功能 function readdirRecursive path handler callback var errs tree fs readdir p
  • 如何在 Windows 上启用 Docker Remote API

    我正在尝试在 Windows 10 主机上使用 Docker Remote API 我正在使用 Chrome 的 Postman 扩展来查看是否可以从 docker 远程 api 的端点获取结果 以下是我尝试过的端点 GET http 19
  • gridview的锁定滚动

    I have one gridview in my UI but it scrolls vertically I have set all the scrollbar properties as false but its still sc
  • FlatList scrollToIndex 使用 useRef 和 Typescript - 类型错误

    我正在使用 FlatList 我想创建一个引用 以便在按下一个按钮时能够滚动 FlatList 问题是我正在使用 Typescript 并且遇到一种我无法解决的类型错误 问题是 如何为 FlatList 引用创建接口 这里有一个我正在做的事
  • 在 Visual C++ 6.0 中查找源文件的预设位置

    由于我们的一些代码是遗留的 我们仍在使用 Microsoft Visual 6 0 SP6 当我第一次附加到正在运行的进程来调试它时 它不知道我闯入该进程时源文件所在的位置 因此 它要求我在给定源文件名的情况下导航到源树中的适当目录 它记住
  • 未指定输入文件 - apache 和 php-fastcgi

    我客户的网站当前运行在带有 mod php 的 apache 服务器上 所有应用程序的路由都在 htaccess 文件中定义 请参阅下面的代码 现在他正尝试迁移到运行 apache 和 php fastcgi 的服务器 但路由不再有效
  • 从 XML 到 XML 文档的 XSLT 转换

    我需要帮助才能获得正确的 XSL 转换 我希望按原样复制源 XML 并对目标 XML 文件进行所需的更新 现在我正在尝试两件事 第一是将源复制到目标 XML 第二是更新根元素的命名空间 URL 和版本属性 请找到下面的代码 让我知道出了什么
  • 如何在 Python 中使用 OpenCV 泛化轮廓手写字符?

    我尝试从图像中检测并裁剪手写字符 某些字符可以被识别并包含在矩形中 但对于其他字符 相同的参数不起作用 我怎样才能概括它 原始图像 https i stack imgur com nvCXT png import cv2 import nu
  • 如何将测试输出设置为控制台而不是 gradle 中的 html for specs2

    我使用 specs2 scala 进行单元测试并使用 gradle 进行构建 默认情况下 单元测试输出到 html 文件 我想让输出直接输出到标准输出 就像 sbt 一样 有谁知道魔法咒语吗 谢谢 翅膀 您可以使用 test makes t
  • 使用 mod_rewrite 在 PHP 中重写 URL

    Web 服务器是 Apache 我想重写 URL 这样用户就不会知道实际的目录 例如 原网址 http www example com en piecework piecework php piecework id 11 预期网址 http
  • 如何关闭使用 FB.ui() 打开的 facebook SDK 对话框?

    我成功显示了邀请好友对话框 代码如下所示 当用户单击 跳过 时 iframe 对话框会显示一个新页面 但是从现在起我找不到关闭 iframe dialog 的方法 FB ui 不返回任何对象 似乎没有 Javascript SDK 方法 并
  • 在 Linux 上,命令行程序 mktemp 是否不如 C 函数 mkstemp 安全?

    这两个操作都会创建一个空文件并返回文件名 但 mkstemp 使文件以独占模式打开并为您提供句柄 C 功能有安全优势吗 这是否意味着命令行版本存在安全漏洞 顺便说一句 有趣的是 Linux 上的 C api 中有几个相关函数 其中大多数在其