Lines Matching +full:- +full:100
6 * Code for uid-swapping.
54 static int saved_egroupslen = -1, user_groupslen = -1;
68 (u_int)pw->pw_uid, (u_int)pw->pw_gid,
87 if (saved_egroupslen == -1)
88 fatal("getgroups: %.100s", strerror(errno));
92 if (getgroups(saved_egroupslen, saved_egroups) == -1)
93 fatal("getgroups: %.100s", strerror(errno));
100 if (user_groupslen == -1 || user_groups_uid != pw->pw_uid) {
101 if (initgroups(pw->pw_name, pw->pw_gid) == -1)
102 fatal("initgroups: %s: %.100s", pw->pw_name,
106 if (user_groupslen == -1)
107 fatal("getgroups: %.100s", strerror(errno));
111 if (getgroups(user_groupslen, user_groups) == -1)
112 fatal("getgroups: %.100s", strerror(errno));
117 user_groups_uid = pw->pw_uid;
120 if (setgroups(user_groupslen, user_groups) == -1)
121 fatal("setgroups: %.100s", strerror(errno));
124 if (setgid(getegid()) == -1)
125 debug("setgid %u: %.100s", (u_int) getegid(), strerror(errno));
127 if (setuid(geteuid()) == -1)
128 debug("setuid %u: %.100s", (u_int) geteuid(), strerror(errno));
130 if (setegid(pw->pw_gid) == -1)
131 fatal("setegid %u: %.100s", (u_int)pw->pw_gid,
133 if (seteuid(pw->pw_uid) == -1)
134 fatal("seteuid %u: %.100s", (u_int)pw->pw_uid,
144 /* it's a no-op unless privileged */
155 if (seteuid(saved_euid) == -1)
156 fatal("seteuid %u: %.100s", (u_int)saved_euid, strerror(errno));
157 if (setegid(saved_egid) == -1)
158 fatal("setegid %u: %.100s", (u_int)saved_egid, strerror(errno));
165 if (setuid(getuid()) == -1)
167 if (setgid(getgid()) == -1)
171 if (setgroups(saved_egroupslen, saved_egroups) == -1)
172 fatal("setgroups: %.100s", strerror(errno));
192 debug("permanently_set_uid: %u/%u", (u_int)pw->pw_uid,
193 (u_int)pw->pw_gid);
195 if (setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) == -1)
196 fatal("setresgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno));
203 if (initgroups(pw->pw_name, pw->pw_gid) == -1)
204 fatal("initgroups %.100s %u: %.100s",
205 pw->pw_name, (u_int)pw->pw_gid, strerror(errno));
208 if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) == -1)
209 fatal("setresuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno));
213 if (old_gid != pw->pw_gid && pw->pw_uid != 0 &&
214 (setgid(old_gid) != -1 || setegid(old_gid) != -1))
219 if (getgid() != pw->pw_gid || getegid() != pw->pw_gid) {
222 (u_int)pw->pw_gid);
227 if (old_uid != pw->pw_uid &&
228 (setuid(old_uid) != -1 || seteuid(old_uid) != -1))
233 if (getuid() != pw->pw_uid || geteuid() != pw->pw_uid) {
236 (u_int)pw->pw_uid);