我在 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
。