TeX 環境にセキュリティホールが発見されて話題になっている。
TeX Live や W32TeX では既に対策がとられているため、使用している場合はアップデートするのがよい。
ただし Ubuntu のパッケージマネージャーを用いて TeX Live をインストールしている場合には問題がある。apt でインストールされる TeX Live は本家 TeX Live の更新に追いついていない(12月9日現在)。この場合であっても tlmgr
は存在しているためアップデートは不可能ではないが、パッケージ管理下のファイル群を書き換えさせるのはできれば避けておきたい。
Ubuntu リポジトリの TeX Live のバージョンが上がることは考えにくいし、本家版 TeX Live をインストールするのも億劫だ。(まるごとパッケージマネージャーにお任せする利点が色々有る)
私はアップデートを諦めて、texmf.cnf
を書き換える方法で対処した。
どうやら、kpsewhich -var-value=shell_escape_commands
の出力に mpost, pmpost, upmpost
が含まれていたら、それらを除いたリスト(csv)をtexmf.d
に記載すればよいとのこと。
(他の環境ではわからないが手元のUbuntu 16.04の場合)texmf.cnf
に書き加えたい場合は、 /etc/tex/texmf.d/
以下に設定ファイルを作り、update-texmf
で反映させるのが正当なやり方らしい。
texmf.cnf
に書き加えるワンライナーを作成した。下のものを端末で実行すればよい。
sudo sh -c "echo shell_escape_commands = `kpsewhich -var-value=shell_escape_commands | tr ',' '\n' | grep -v 'mpost' | sed '/^$/d' | tr '\n' ','` > /etc/texmf/texmf.d/99sh_esc.cnf && update-texmf"
うまくいったかどうかを確認するには、 kpsewhich -var-value=shell_escape_commands
を実行して、出力から *mpost
がなくなっているのをみればよい。
また、上記のワンライナーでやったことを取り消すには、
sudo sh -c "rm /etc/texmf/texmf.d/99sh_esc.cnf && update-texmf"
を実行すればよい。