2 /* -------------------------------------------------------------------------- */
4 #include <kernelplat.h>
8 /* -------------------------------------------------------------------------- */
10 static void cilux_terminate(void);
11 static void re_exec_as_other();
13 /* -------------------------------------------------------------------------- */
15 int main(int argc, char* argv[])
17 c_init(cilux_version, cilux_ciux, cilux_terminate);
25 /* -------------------------------------------------------------------------- */
27 void re_exec_as_other()
33 struct passwd* pw=getpwnam(other);
34 if(!pw){ printf("fail: getpwnam(\"%s\");\n", other); exit(1); }
44 printf("Failed to fork\n");
47 printf("pid %d\n", pid);
53 if(setgroups(0,0)== -1){
54 printf("fail: setgroups(0,0)\n");
58 printf("fail: setgid(%d)\n", gid);
61 if(initgroups(other, gid)== -1){
62 printf("fail: initgroups(\"%s\",%d)\n", other, gid);
66 printf("fail: setuid(%d)\n", uid);
72 void cilux_terminate(void)
78 /* -------------------------------------------------------------------------- */