#include int main(int argc,char *argv[]) { int i; if(argc < 4) { fprintf(stderr,"usage: %s uid gid [secondary_gids] absolute-path-of-executable\n",argv[0]); return 0; } if(getuid() && geteuid()) { fprintf(stderr,"supersu: uid: %d, euid: %d... I have no idea how this is supposed to work. oh well.\n",getuid(),geteuid()); } int groups[argc-2]; int ngroups=0; char **name; int here=0; for(i=2;i