我正在尝试编写一个 python 脚本来生成一个 debian 包。
我正在临时文件夹中生成所需的文件夹结构。为了将/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

为什么会这样?
谢谢

最佳答案

chroot() 只能由 root 完成。

执行以下操作之一:

  • 使用 sudo
  • 运行脚本
  • 使脚本setuid root,并做setuid(geteuid())等价的python magic
  • 关于python - os.chroot 不允许操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17973180/

    10-12 19:21