She*_*fer 49 linux filesystems shell
我不明白mktemp临时文件的功能和意义.
说touch xyz和之间有什么区别mktemp xyz(除了mktemp会创建一些附加了xxx的文件并且有600个权限的事实?)
请澄清.
Igo*_*bin 54
mktemp随机化名称.从安全角度来看这非常重要.
试想一下你做的事情:
echo something > /tmp/temporary-file
Run Code Online (Sandbox Code Playgroud)
在你的root运行脚本中.
有人(已经读过你的剧本)的确如此
ln -s /etc/passwd /tmp/temporary-file
Run Code Online (Sandbox Code Playgroud)
之前.
mktemp在这种情况下,该命令可以帮助您:
TEMP=$(mktemp /tmp/temporary-file.XXXXXXXX)
echo something > ${TEMP}
Run Code Online (Sandbox Code Playgroud)
现在这种ln /etc/passwd攻击不起作用.
pau*_*sm4 24
您经常需要"暂存文件"(或目录).此外,您可能需要同时使用多个此类文件,并且您不想打算如何命名它们以便没有冲突.
"mktemp"适合账单:)
还有一个额外的原因:并非所有系统都/tmp用作临时目录。例如https://termux.com/由于技术原因(它作为 Android 内部的进程运行),与 tmp 目录具有不同的长路径。
使用创建临时文件或目录的脚本mktemp将是可移植的,并且也可以在此类特殊环境中工作。
好的,实际上它是在手册页中清楚地写的.
mktemp - 创建临时文件或目录.
安全地创建临时文件或目录,并打印其名称.
它安全地创建文件或目录意味着没有其他用户可以访问它,这就是它的权限为600的原因
touch - 更改文件时间戳
它只是在已创建文件时更改文件的时间戳,如果不存在则创建文件.但默认情况下,文件权限仍为644.
有关详细信息,请查看以下手册页:
http://linux.die.net/man/1/mktemp
http://linux.die.net/man/1/touch