|
发表于 2007-4-14 15:11:48
|
显示全部楼层
Post by cupful_xu
想实现一个非常简单的功能: 在子进程中chroot到指定目录,然后通过execl()函数执行指定目录下的/bin/sh。
结果是:
chroot()成功执行,但是execl函数会报错(errno==2)。
不知道如何在帖子里面实现代码的缩进效果,
所以将代码附在附件中(chroot.c): chroot(改变根目录)
相关函数 chdir
#include<unistd.h>
int chroot(const char * path);
chroot()用来改变根目录为参数path 所指定的目录。只有超级用户才允许改变根目录,子进程将继承新的根目录。
返回值 调用成功则返回0,失败则返-1,错误代码存于errno。
范例 /* 将根目录改为/tmp ,并将工作目录切换至/tmp */
#include<unistd.h>
main()
{
chroot(“/tmp”);
chdir(“/”);
}
你如果想到你指定的目录下面去的话使用 chdir()函数
chroot()是改变你的根目录的函数. |
|