haiku/headers/private/kernel/usergroup.h
Ingo Weinhold 4eb3560949 * Added real, effective and saved set- user and group IDs to the team
structure. They are properly inherited and updated on
  fork(), load_image(), and exec().
* Implemented the get[e]{u,g}id(), set[[r]e]{u,g}id() family for real.
* getgroups() also calls the kernel now, but only returns the effective
  group ID. Supplementary groups support is still missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-11 17:12:02 +00:00

40 lines
830 B
C

/*
* Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
* Distributed under the terms of the MIT License.
*/
#ifndef _KERNEL_USERGROUP_H
#define _KERNEL_USERGROUP_H
#include <unistd.h>
#include <SupportDefs.h>
struct team;
#ifdef __cplusplus
extern "C" {
#endif
// kernel private functions
void inherit_parent_user_and_group(struct team* team,
struct team* parent);
status_t update_set_id_user_and_group(struct team* team, const char* file);
// syscalls
gid_t _user_getgid(bool effective);
uid_t _user_getuid(bool effective);
ssize_t _user_getgroups(int groupSize, gid_t* groupList);
status_t _user_setregid(gid_t rgid, gid_t egid, bool setAllIfPrivileged);
status_t _user_setreuid(uid_t ruid, uid_t euid, bool setAllIfPrivileged);
#ifdef __cplusplus
} // extern "C"
#endif
#endif // _KERNEL_USERGROUP_H