我正在尝试以某个用户身份进行 chroot。对于一个用户来说它有效,对于其他用户则不然,我不知道发生了什么。
我的/etc/passwd
chroot 目录看起来像这样(相关部分):
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 --login
说chroot: failed to run command ‘/bin/bash’: Permission denied
/bin/bash
chroot:的详细信息-rwxr-xr-x 1 user user 455188 Sep 19 08:58
,user
我的用户名在系统中的位置。
有什么想法为什么用户test1
不起作用?如果您需要更多信息,请询问,我会将其放入。提前非常感谢。
答案1
如果有chroot
(并且没有用户命名空间,这里就是这种情况),运行您给出的命令所需的目录和文件chroot
需要可供您指定的用户访问。这包括:
- chroot 的根;
bin
并bin/bash
在 chroot 中;lib
以及其中使用的任何库bash
(如果有)(ldd bin/bash
会告诉您它们是什么);- 何时
bash
开始,home/test
以及任何启动脚本(.bashrc
等,如果需要)。
跑步chmod -R 777
显然可以解决这一切;您可以使用更严格的权限,只要用户 id 1001 可以读取并执行相应的文件。chmod -R 755 bin lib
并chmod 755 .
允许bash
启动。