chroot:无法运行命令“/bin/bash”:权限被拒绝

chroot:无法运行命令“/bin/bash”:权限被拒绝

我正在尝试以某个用户身份进行 chroot。对于一个用户来说它有效,对于其他用户则不然,我不知道发生了什么。

我的/etc/passwdchroot 目录看起来像这样(相关部分):

test0:x:1000:1000:test0:/home/test:/bin/bash
test1:x:1001:1001:test1:/home/test:/bin/bash
  • sudo chroot --userspec=test0 chroot_dir/ /bin/bash --login效果很好
  • sudo chroot --userspec=test1 chroot_dir/ /bin/bash --loginchroot: failed to run command ‘/bin/bash’: Permission denied
  • /bin/bashchroot:的详细信息-rwxr-xr-x 1 user user 455188 Sep 19 08:58user我的用户名在系统中的位置。

有什么想法为什么用户test1不起作用?如果您需要更多信息,请询问,我会将其放入。提前非常感谢。

答案1

如果有chroot(并且没有用户命名空间,这里就是这种情况),运行您给出的命令所需的目录和文件chroot需要可供您指定的用户访问。这包括:

  • chroot 的根;
  • binbin/bash在 chroot 中;
  • lib以及其中使用的任何库bash(如果有)(ldd bin/bash会告诉您它们是什么);
  • 何时bash开始,home/test以及任何启动脚本(.bashrc等,如果需要)。

跑步chmod -R 777显然可以解决这一切;您可以使用更严格的权限,只要用户 id 1001 可以读取并执行相应的文件。chmod -R 755 bin libchmod 755 .允许bash启动。

相关内容