我正在设置最小的chroot,并希望避免在其中包含sudo或su,但仍以非root用户身份运行我的进程。当运行chroot要求root时,这有点技巧。我可以编写一个执行以下操作的程序:
uid = LookupUser(args[username]) // no /etc/passwd in jail chroot(args[newroot]) cd("/") setuids(uid) execve(args[exe:])
这是我最好的选择吗?或者是否有标准工具可以为我做到?
如果chroot从超级用户调用,该chroot选项--userspec=USER:GROUP将在非超级用户UID / GID下运行命令。
chroot
--userspec=USER:GROUP
顺便说一句,选项’–userspec’首先是根据git仓库在coreutils-7.5中引入的git://git.sv.gnu.org/coreutils。
git://git.sv.gnu.org/coreutils