* 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
This commit is contained in:
Ingo Weinhold
2008-03-11 17:12:02 +00:00
parent 1149e982f0
commit 4eb3560949
12 changed files with 479 additions and 95 deletions
+9
View File
@@ -113,6 +113,15 @@ extern status_t _kern_get_team_info(team_id id, team_info *info);
extern status_t _kern_get_next_team_info(int32 *cookie, team_info *info);
extern status_t _kern_get_team_usage_info(team_id team, int32 who, team_usage_info *info, size_t size);
// user/group functions
extern gid_t _kern_getgid(bool effective);
extern uid_t _kern_getuid(bool effective);
extern ssize_t _kern_getgroups(int groupSize, gid_t* groupList);
extern status_t _kern_setregid(gid_t rgid, gid_t egid,
bool setAllIfPrivileged);
extern status_t _kern_setreuid(uid_t ruid, uid_t euid,
bool setAllIfPrivileged);
// signal functions
extern status_t _kern_send_signal(pid_t tid, uint sig);
extern status_t _kern_sigprocmask(int how, const sigset_t *set,