|
XenevaOS
|
#include <Cred/group.h>#include <Cred/user.h>#include <Cred/cred.h>#include <string.h>#include <process.h>#include <Fs/vfs.h>#include <Drivers/uart.h>#include <Hal/AA64/aa64lowlevel.h>#include <aucon.h>
Macros | |
| #define | GID_GROUP_NET_MIN 0x1000 |
| #define | GID_GROUP_NET_MAX 0x1FFF |
| #define | GID_GROUP_IPC_MIN 0x2000 |
| #define | GID_GROUP_IPC_MAX 0x2FFF |
| #define | GID_GROUP_MISC_MIN 0x3000 |
| #define | GID_GROUP_MISC_MAX 0x3FFF |
Functions | |
| void | AuCredGroupInitialize () |
| AuCredGroupInitialize – initialize default global group id's. | |
| int | AuCredGroupAdd (uint8_t category, GID_NUM value) |
| uint8_t | AuCredGetGroupCategory (const char *string) |
| AuCredGetGroupCategory – get a group category number by looking it name. | |
| GID_NUM | AuCredGetGroupID (uint8_t category) |
| AuCredGetGroupID – return a group id number. | |
| int | AuCredChangeID (int fd, UID_NUM uid, GID_NUM gid) |
| AuCredChangeID – change credential ids. | |
| int | AuCredAddSGroup (int proc_id, int sgid) |
| AuCredAddSGroup – add supplimentary gid to process. | |
| int | AuCredSetCap (int proc_id, int cap) |
| int | AuCredGetCap (int proc_id) |
| int | AuCredCheckPermissions (AuVFSNode *node, AuProcCredentials *cred) |
| AuCredCheckPermissions – before giving permission, check all credentials, enei aru access koriba dibi neki, ji pai take korba nori tu. | |
| int | AuSetUID (int proc_id, UID_NUM uid) |
| AuSetUID – change user id of a process. | |
| int | AuSetGID (int proc_id, GID_NUM gid) |
| AuSetGID – change user id of a process. | |
BSD 2-Clause License
Copyright (c) 2022-2026, Manas Kamal Choudhury All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
| #define GID_GROUP_IPC_MAX 0x2FFF |
| #define GID_GROUP_IPC_MIN 0x2000 |
| #define GID_GROUP_MISC_MAX 0x3FFF |
| #define GID_GROUP_MISC_MIN 0x3000 |
| #define GID_GROUP_NET_MAX 0x1FFF |
| #define GID_GROUP_NET_MIN 0x1000 |
| int AuCredAddSGroup | ( | int | proc_id, |
| int | sgid | ||
| ) |
AuCredAddSGroup – add supplimentary gid to process.
| proc_id | – process id number |
| sgid | – sgid number |
check capabilities
AuCredChangeID – change credential ids.
| fd | – file descriptor |
| uid | – user id |
| gid | – groupd id number |
check capabilities
| int AuCredCheckPermissions | ( | AuVFSNode * | node, |
| AuProcCredentials * | cred | ||
| ) |
AuCredCheckPermissions – before giving permission, check all credentials, enei aru access koriba dibi neki, ji pai take korba nori tu.
| node | – File node |
| cred | – Process's credential |
root get access to everything
maybe this process's user, created the file and owner of this file
maybe this process directly belong to the group
now search for supplimentary gids
sorry,kela, no access to the file
| int AuCredGetCap | ( | int | proc_id | ) |
AuCredGetCap – get capabilities of desired process
| proc_id | – process id, zero for current process |
check capabilities
| uint8_t AuCredGetGroupCategory | ( | const char * | string | ) |
AuCredGetGroupCategory – get a group category number by looking it name.
| string | – name of the group |
AuCredGetGroupID – return a group id number.
| string | – group name |
AuCredGroupAdd – add group value to a category
| category | – category number |
| value | – value to add |
could not add value
| void AuCredGroupInitialize | ( | ) |
AuCredGroupInitialize – initialize default global group id's.
AuCredGroupInitialize – initialize default group id's which is zero.
fill up the IPC group gid
fill up the MISC group gid
| int AuCredSetCap | ( | int | proc_id, |
| int | cap | ||
| ) |
AuCredSetCap – add capability to a process
| proc_id | – process id, zero for current process |
| cap | – capability to add |
check capabilities
| int AuSetGID | ( | int | proc_id, |
| GID_NUM | gid | ||
| ) |
AuSetGID – change user id of a process.
| proc | – Process id to change their uid |
| uid | – User id |
don't allow root process to change it's uid/gid, in Xeneva the root process get process id of one
| int AuSetUID | ( | int | proc_id, |
| UID_NUM | uid | ||
| ) |
AuSetUID – change user id of a process.
| proc | – Process id to change their uid |
| uid | – User id |
don't allow root process to change it's uid/gid, in Xeneva the root process get process id of one