標準の RExec クラスよりも、若干、もっと緩めたポリシを 望んでいるとしましょう。例えば、もし /tmp 内のファイルへの書き込みを 喜んで許すならば、RExec クラスを次のように サブクラス化できます:
class TmpWriterRExec(rexec.RExec): def r_open(self, file, mode='r', buf=-1): if mode in ('r', 'rb'): pass elif mode in ('w', 'wb', 'a', 'ab'): # ファイル名をチェックします : /tmp/ で始まらなければなりません if file[:5]!='/tmp/': raise IOError, " /tmp 以外へは書き込みできません" elif (string.find(file, '/../') >= 0 or file[:3] == '../' or file[-3:] == '/..'): raise IOError, "ファイル名の '..' は禁じられています" else: raise IOError, "open() モードが正しくありません" return open(file, mode, buf)