LuaTex は、openin_any=p オプションでインストールされたパッケージを開きません。

LuaTex は、openin_any=p オプションでインストールされたパッケージを開きません。

オンライン LuaTeX コンパイル サービスを開始する予定です。

CentOS 7 に TexLive 2015 を使用して LuaTeX をインストールしました。セキュリティ上の理由から、ファイルを開くことを制限したいと考えました。そのため、 を設定しましたopenin_any=p。しかし、 にインストールされたテンプレート ファイルを開くことも制限されますtexmf-dist。他のコンパイラはテンプレート ファイルを読み取ることができます。

このファイルをコンパイルしようとしました:

\documentclass{ltjsarticle}
\usepackage{graphicx}



\title{title}


\author{auth}
\date{\today}
\begin{document}
\maketitle
\section{section}

This is sample.

\end{document}

このファイルをコンパイルするlualatex sample.texと、次のようなメッセージが表示されました。

This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) 
 restricted \write18 enabled.
(./sample.tex
LaTeX2e <2016/02/01>
Babel <3.9o> and hyphenation patterns for 1 language(s) loaded.

lualatex: Not reading from /usr/local/texlive/2015/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls (openin_any = p).

! LaTeX Error: File `ltjsarticle.cls' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: cls)

どうすれば修正できますか?

答え1

オンラインサービスとしてのTeXについて: [http://cseweb.ucsd.edu/~hovav/dist/texhack.pdf

Luaについて: フォーマットはLuaを自由に再定義できるので、

local myopen = function(...) print("ERROR: open is not permitted") return false end
local _std = {}
_std.oldopen = io.open
io.open = myopen 
for k,v in pairs(_std) do print(k,v) end
assert(io.open("foo"), 'Error on io.open' )

io.open は安全です (_std が非表示になるまで)

io.open を気にしない場合:

local myopen = function(...) print("ERROR: open is not permitted") return false end
io.open = myopen 
assert(io.open("foo"), 'Error on io.open' )

関連情報