3

Debian パッケージを生成するための Python スクリプトを作成しようとしています。一時フォルダーに必要なフォルダー構造を生成しています。/usr とサブフォルダーの uid と gid を root に変更するために、chroot を使用することを考えました。

ただし、この行では

os.chroot(tmpdir)

私は得る:

OSError: [Errno 1] Operation not permitted: '/tmp/tmpVnTqW7/myproj'

このミニチュートリアルも同じ結果で試しました: http://www.tutorialspoint.com/python/os_chroot.htm

なぜでしょうか?ありがとう

4

3 に答える 3

4

chroot() は root のみが実行できます。

次のいずれかを実行します。

  1. sudo でスクリプトを実行する

  2. スクリプトを setuid ルートにし、setuid(geteuid()) と同等の python マジックを実行します。

于 2013-07-31T14:31:42.960 に答える
0

ディレクトリに chroot する代わりに、fakeroot を使用して dpkg-deb を実行する必要があります: fakeroot dpkg-deb -z8 -Zgzip --build myproj

于 2013-08-02T11:19:21.550 に答える