小编Fus*_*ion的帖子

chroot + execvp + bash

更新

得到它了!看我的解决方案(第五条评论)

这是我的问题:

我创建了一个名为"jail"的小二进制文件,在/ etc/password中我将它作为测试用户的默认shell.

这是 - 简化 - 源代码:

#define HOME "/home/user"
#define SHELL "/bin/bash"
...
if(chdir(HOME) || chroot(HOME)) return -1;
...
char *shellargv[] = { SHELL, "-login", "-rcfile", "/bin/myscript", 0 };
execvp(SHELL, shellargv);
Run Code Online (Sandbox Code Playgroud)

好吧,无论我怎么努力,似乎当我的测试用户登录时,/ bin/myscript将永远不会被采购.同样,如果我将.bashrc文件放在用户的主目录中,它也会被忽略.

为什么要抨击这些家伙呢?

-

一些精确,但不一定相关,但要澄清评论中提出的一些观点:

  • 'jail'二进制文件实际上是suid,因此允许它成功地chroot().
  • 我用'ln'来制作合适的二进制文件 - 我的jail单元很好地填充:)
  • 这个问题似乎与chrooting用户没有关系...其他东西是疏忽.

bash chroot

8
推荐指数
1
解决办法
1334
查看次数

标签 统计

bash ×1

chroot ×1