123456789101112131415161718192021222324252627282930 |
- diff -uPr do_command.c do_command.c
- --- do_command.c 2006-05-25 16:44:26.000000000 +0400
- +++ do_command.c 2006-05-25 16:42:25.000000000 +0400
- @@ -240,12 +240,23 @@
- }
- }
- #else
- - setgid(e->pwd->pw_gid);
- +
- initgroups(usernm, e->pwd->pw_gid);
- #if (defined(BSD)) && (BSD >= 199103)
- setlogin(usernm);
- #endif /* BSD */
- - setuid(e->pwd->pw_uid); /* we aren't root after this... */
- + // setuid(e->pwd->pw_uid); /* we aren't root after this... */
- +
- + if ( setgid(e->pwd->pw_gid) == -1 ) {
- + fprintf(stderr,"can't set gid for %s\n", e->pwd->pw_name);
- + _exit(1);
- + }
- +
- + if ( setuid(e->pwd->pw_uid) == -1 ) {
- + fprintf(stderr,"can't set uid for %s\n", e->pwd->pw_name);
- + _exit(1);
- + }
- +
-
- #endif /* LOGIN_CAP */
- chdir(env_get("HOME", e->envp));
|