一尘不染

如何在chroot监狱中以root身份而不是sudo来运行命令?

linux

我正在设置最小的chroot,并希望避免在其中包含sudo或su,但仍以非root用户身份运行我的进程。当运行chroot要求root时,这有点技巧。我可以编写一个执行以下操作的程序:

uid = LookupUser(args[username])  // no /etc/passwd in jail
chroot(args[newroot])
cd("/")
setuids(uid)
execve(args[exe:])

这是我最好的选择吗?或者是否有标准工具可以为我做到?


阅读 470

收藏
2020-06-03

共1个答案

一尘不染

如果chroot从超级用户调用,该chroot选项--userspec=USER:GROUP将在非超级用户UID / GID下运行命令。

顺便说一句,选项’–userspec’首先是根据git仓库在coreutils-7.5中引入的git://git.sv.gnu.org/coreutils

2020-06-03