]>
Commit | Line | Data |
---|---|---|
7460295f | 1 | // privileges.h -- Manage process privileges |
242e6c5b | 2 | // Copyright (C) 2008-2010 Markus Gutschke <markus@shellinabox.com> |
7460295f MG |
3 | // |
4 | // This program is free software; you can redistribute it and/or modify | |
5 | // it under the terms of the GNU General Public License version 2 as | |
6 | // published by the Free Software Foundation. | |
7 | // | |
8 | // This program is distributed in the hope that it will be useful, | |
9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | // GNU General Public License for more details. | |
12 | // | |
13 | // You should have received a copy of the GNU General Public License along | |
14 | // with this program; if not, write to the Free Software Foundation, Inc., | |
15 | // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
16 | // | |
17 | // In addition to these license terms, the author grants the following | |
18 | // additional rights: | |
19 | // | |
20 | // If you modify this program, or any covered work, by linking or | |
21 | // combining it with the OpenSSL project's OpenSSL library (or a | |
22 | // modified version of that library), containing parts covered by the | |
23 | // terms of the OpenSSL or SSLeay licenses, the author | |
24 | // grants you additional permission to convey the resulting work. | |
25 | // Corresponding Source for a non-source form of such a combination | |
26 | // shall include the source code for the parts of OpenSSL used as well | |
27 | // as that of the covered work. | |
28 | // | |
29 | // You may at your option choose to remove this additional permission from | |
30 | // the work, or from any part of it. | |
31 | // | |
32 | // It is possible to build this program in a way that it loads OpenSSL | |
33 | // libraries at run-time. If doing so, the following notices are required | |
34 | // by the OpenSSL and SSLeay licenses: | |
35 | // | |
36 | // This product includes software developed by the OpenSSL Project | |
37 | // for use in the OpenSSL Toolkit. (http://www.openssl.org/) | |
38 | // | |
39 | // This product includes cryptographic software written by Eric Young | |
40 | // (eay@cryptsoft.com) | |
41 | // | |
42 | // | |
43 | // The most up-to-date version of this program is always available from | |
44 | // http://shellinabox.com | |
45 | ||
46 | #ifndef PRIVILEGES_H__ | |
47 | #define PRIVILEGES_H__ | |
48 | ||
49 | #include <sys/types.h> | |
50 | ||
51 | extern int runAsUser; | |
52 | extern int runAsGroup; | |
7460295f | 53 | |
7460295f MG |
54 | void lowerPrivileges(void); |
55 | void dropPrivileges(void); | |
56 | const char *getUserName(uid_t uid); | |
57 | uid_t getUserId(const char *name); | |
58 | uid_t parseUser(const char *arg, const char **name); | |
59 | const char *getGroupName(gid_t gid); | |
60 | gid_t getGroupId(const char *name); | |
61 | gid_t parseGroup(const char *arg, const char **name); | |
62 | ||
242e6c5b MG |
63 | #ifndef HAVE_GETRESUID |
64 | int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); | |
65 | #endif | |
66 | #ifndef HAVE_GETRESGID | |
67 | int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); | |
68 | #endif | |
69 | #ifndef HAVE_SETRESUID | |
70 | int setresuid(uid_t ruid, uid_t euid, uid_t suid); | |
71 | #endif | |
72 | #ifndef HAVE_SETRESGID | |
73 | int setresgid(gid_t rgid, gid_t egid, gid_t sgid); | |
74 | #endif | |
75 | ||
7460295f | 76 | #endif |