首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在没有重定向的情况下写入文件?

在没有重定向的情况下写入文件?
EN

Unix & Linux用户
提问于 2011-02-22 14:44:58
回答 4查看 23K关注 0票数 17

我正在编写一个常规编译的应用程序,它需要创建一个特殊的文件并将一个神奇的cookie写入其中。我不能直接从应用程序编写文件,系统安全模型要求我启动一个权限提升的辅助工具来完成这个任务。我可以向助手工具提供任意数量的参数。现在,我想选择一些非常简单的系统命令作为帮助工具,并为我创建文件。就像这样:

/bin/sh -c "/bin/echo -n 'magic' > /some/where/file"

由于我需要将cookie写到文件中,所以简单的touch不会剪切它,没有外壳包装器的简单echo无法工作,因为它需要重定向才能写入文件。我不愿意用根权限调用shell来完成这样一项琐碎的任务。是否有一些简单的、受限的系统命令,我可以调用这些命令来为我编写文件?

EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2011-02-22 15:56:06

这个怎么样:

代码语言:javascript
复制
echo -n 'magic' | sudo tee /some/where/file > /dev/null

当然,这里有重定向,但只有tee作为根运行,而不是shell。也与dd of=...一起工作。

票数 11
EN

Unix & Linux用户

发布于 2016-03-29 13:43:21

没有输出重定向,没有管道,但有“这里字符串”:

代码语言:javascript
复制
dd of=/some/where/file <<<'magic'
票数 11
EN

Unix & Linux用户

发布于 2011-02-22 18:37:46

还有一个考虑因素,就是您不希望将神奇cookie的值放在命令行中,因为其他用户可以观察到这一点。即使该程序使用时间很短(包括该程序将命令行字符串归零),也存在攻击的机会。所以,理论上:

代码语言:javascript
复制
writestringtofile 'magic' /some/where/file

是一种危险的方法。因此,我赞同@stribika的建议:将值写入临时文件并将其复制到位。确保使用一个安全函数来创建临时文件(mkstemp()),以便那里也没有竞争条件。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/7850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档