“restricted \write18 enabled”是什么意思,为什么 TexLive 一直报告它?

“restricted \write18 enabled”是什么意思,为什么 TexLive 一直报告它?

我在 Ubuntu 12.04 上安装了 TL2012 的反向移植版本,每次启动 pdftex、xetex、luatex、pdflatex、xelatex 或 lualatex 时,都会收到语句restricted \write18 enabled. entering extended mode。我不记得在 Miktex 中看到过这个,所以我怀疑我在安装过程中是否做错了什么。有趣的是,当我运行 时,我没有收到该消息tex

首先,这是什么意思?其次,这是 Tex Live (2012) 的正常消息吗?最后,如果这是错误,我该如何修复?

答案1

多年来\write18一直被用作操作系统的后门。从语法上讲,TeX 将其视为写入文件,但寄存器 18 被视为预先打开的文件,实际上会执行命令。

“无限制” write18 意味着你可以执行任何命令,因此如果您允许此操作并运行某人发送的 TeX 文件,它可能会执行任意代码,将您的密码文件通过电子邮件发送给垃圾邮件机器人或其他什么。

这显然是一种安全风险,但是有些命令自然是 Tex 发行版的一部分,您可能希望始终允许它们(例如图像和字体转换),因此 web2c 允许您(或默认的 texlive 维护者)设置一组“允许的、安全的”命令,并且允许这些命令在受限模式下运行。

第三种选择是根本不执行命令\write18

相关内容