Mercurial > hgrepos > hgweb.cgi > imapext
comparison src/osdep/unix/log_sv4.c @ 0:ada5e610ab86
imap-2007e
author | yuuji@gentei.org |
---|---|
date | Mon, 14 Sep 2009 15:17:45 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:ada5e610ab86 |
---|---|
1 /* ======================================================================== | |
2 * Copyright 1988-2006 University of Washington | |
3 * | |
4 * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 * you may not use this file except in compliance with the License. | |
6 * You may obtain a copy of the License at | |
7 * | |
8 * http://www.apache.org/licenses/LICENSE-2.0 | |
9 * | |
10 * | |
11 * ======================================================================== | |
12 */ | |
13 | |
14 /* | |
15 * Program: SVR4 login | |
16 * | |
17 * Author: Mark Crispin | |
18 * Networks and Distributed Computing | |
19 * Computing & Communications | |
20 * University of Washington | |
21 * Administration Building, AG-44 | |
22 * Seattle, WA 98195 | |
23 * Internet: MRC@CAC.Washington.EDU | |
24 * | |
25 * Date: 1 August 1988 | |
26 * Last Edited: 30 August 2006 | |
27 */ | |
28 | |
29 /* Log in | |
30 * Accepts: login passwd struct | |
31 * argument count | |
32 * argument vector | |
33 * Returns: T if success, NIL otherwise | |
34 */ | |
35 | |
36 long loginpw (struct passwd *pw,int argc,char *argv[]) | |
37 { | |
38 uid_t uid = pw->pw_uid; | |
39 char *name = cpystr (pw->pw_name); | |
40 long ret = !(setgid (pw->pw_gid) || initgroups (name) || setuid (uid)); | |
41 fs_give ((void **) &name); | |
42 return ret; | |
43 } |