【发布时间】:2018-04-15 22:15:51
【问题描述】:
我有一个测试,它在标准 cmake/ctest 过程中运行。
问题是我的测试需要创建一个临时文件(不需要在不同的测试中保留它),并且失败并出现EACCES 错误代码。
以下(大概)失败:
m_hFile = open("/tmp/mytest.bin", O_RDWR | O_CREAT);
我是否必须调整与权限相关的内容,或者可能写入另一个位置?
【问题讨论】:
-
如果已设置,您可能应该使用
TMPDIR。如果未设置,则需要找到攻击者无法控制或影响的可写目录。也许~/.tmp/。请注意,GCC Compile Farm 以只读方式挂载/并拒绝用户写入访问权限,因此即使/tmp也是禁止访问的。另请参阅cryptest.sh,我们可以(几乎?)在任何地方使用它,包括 AIX、BSD、OS X、Linux、Solaris。它尝试做的第一件事就是找到一个合适的TMPDIR。