2008-03-11 20:12:02 +03:00
|
|
|
/*
|
|
|
|
* Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
|
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*/
|
|
|
|
#ifndef _KERNEL_USERGROUP_H
|
|
|
|
#define _KERNEL_USERGROUP_H
|
|
|
|
|
2011-01-11 00:54:38 +03:00
|
|
|
|
2008-03-11 20:12:02 +03:00
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
#include <SupportDefs.h>
|
|
|
|
|
|
|
|
|
2011-01-11 00:54:38 +03:00
|
|
|
namespace BKernel {
|
|
|
|
struct Team;
|
|
|
|
}
|
|
|
|
|
|
|
|
using BKernel::Team;
|
2008-03-11 20:12:02 +03:00
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// kernel private functions
|
|
|
|
|
2011-01-11 00:54:38 +03:00
|
|
|
void inherit_parent_user_and_group(Team* team, Team* parent);
|
|
|
|
status_t update_set_id_user_and_group(Team* team, const char* file);
|
2008-03-11 20:12:02 +03:00
|
|
|
|
|
|
|
// syscalls
|
|
|
|
|
|
|
|
gid_t _user_getgid(bool effective);
|
|
|
|
uid_t _user_getuid(bool effective);
|
|
|
|
status_t _user_setregid(gid_t rgid, gid_t egid, bool setAllIfPrivileged);
|
|
|
|
status_t _user_setreuid(uid_t ruid, uid_t euid, bool setAllIfPrivileged);
|
2008-03-30 04:08:13 +04:00
|
|
|
ssize_t _user_getgroups(int groupCount, gid_t* groupList);
|
|
|
|
ssize_t _user_setgroups(int groupCount, const gid_t* groupList);
|
2008-03-11 20:12:02 +03:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} // extern "C"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif // _KERNEL_USERGROUP_H
|