我正在努力做一个chroot作为某个用户.对于一个用户来说它是有效的,对于其他用户来说它没有,我不知道发生了什么.
我在chroot目录中的/ etc / passwd看起来像这样(相关部分):
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:无法运行命令’/ bin / bash’:权限被拒绝
> / bin / bash in chroot的详细信息:-rwxr-xr-x 1 user user 455188 Sep 19 08:58,其中user是我在系统中的用户名.
任何想法为什么用户test1不起作用?如果您需要更多信息,请询问,我会把它们放进去.非常感谢您提前.
解决方法:
使用chroot(并且没有用户命名空间,这是这种情况),运行您提供给chroot的命令所需的目录和文件需要您指定的用户可访问.这包括:
> chroot的根;
> chroot中的bin和bin / bash;
> lib和bash中使用的任何库,如果有的话(ldd bin / bash会告诉你它们是什么);
>当bash开始,home / test和任何启动脚本(.bashrc等,如果有必要).
运行chmod -R 777显然可以解决所有这些问题;只要用户ID 1001可以读取并执行相应的文件,您就可以使用更严格的权限. chmod -R 755 bin lib和chmod 755.将允许bash开始.