22 lines
587 B
C
22 lines
587 B
C
#include <zinnia/ident.h>
|
|
|
|
static const struct ident kernel_identity = {0};
|
|
|
|
const struct ident* ident_kernel() {
|
|
return &kernel_identity;
|
|
}
|
|
|
|
bool ident_in_group(const struct ident* identity, gid_t gid, bool use_real) {
|
|
if (gid == (use_real ? identity->gid : identity->egid))
|
|
return true;
|
|
vec_foreach(&identity->groups, i) {
|
|
if (vec_elem_get(&identity->groups, i) == gid)
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool ident_is_privileged(const struct ident* identity, bool use_real) {
|
|
return (use_real ? identity->uid : identity->euid) == 0;
|
|
}
|