0

chroot 環境でファイルにデータを書き込もうとしています。私は非 root ユーザーなので、chroot と通信できる唯一の方法は schroot コマンドを使用することです。

現在、次のトリックを使用してデータを書き込んでいます。

$ schroot -c chroot_session -r -d /tmp -- bash -c "echo \"$text\" > file.txt"

しかし、テキストに特殊文字や引用符などが含まれている場合、これは私に多くの悲しみを与えると確信しています。ほとんどの場合、Python スクリプトを介して上記のコマンドを使用します。もっと簡単な方法はありますか?

4

2 に答える 2

1

ちょっとハックですが…</p>

c = ConfigParser.RawConfigParser()
c.readfp(open(os.path.join('/var/lib/schroot/session', chroot_session), 'r'))
chroot_basedir = c.get(chroot_session, 'mount-location')
with open(os.path.join(chroot_basedir, '/tmp/file.txt'), 'w') as fp:
    fp.write(text)

よし、それで特権はあなたが 以外の方法で入ることを許可しませんschrootね?

p = subprocess.Popen(['schroot', '-c', name, '-r', 'tee', '/tmp/file.txt'],
                     stdin=subprocess.PIPE,
                     stdout=open('/dev/null', 'w'),
                     stderr=sys.stderr)
p.stdin.write(text)
p.stdin.close()
rc = p.wait()
assert rc == 0
于 2011-02-02T06:38:04.540 に答える
0

Python を使用して $text をファイルに書き込み (Python には書き込み権限があります)、
そのファイルを file.txt にコピーできます。

于 2011-02-02T06:37:08.687 に答える