Move {uid,gid}_is_*() from basic to shared

Those are functions that express policy, and nothing in basic/ uses
(or should use) them.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-09-25 13:56:13 +02:00
parent 960b585ba1
commit 98dcb8f4c7
7 changed files with 30 additions and 25 deletions

View File

@ -3,7 +3,7 @@
#include <grp.h>
#if ENABLE_GSHADOW
#include <gshadow.h>
# include <gshadow.h>
#endif
#include <pwd.h>
#include <shadow.h>
@ -61,30 +61,6 @@ int take_etc_passwd_lock(const char *root);
#define ETC_PASSWD_LOCK_PATH "/etc/.pwd.lock"
static inline bool uid_is_system(uid_t uid) {
return uid <= SYSTEM_UID_MAX;
}
static inline bool gid_is_system(gid_t gid) {
return gid <= SYSTEM_GID_MAX;
}
static inline bool uid_is_dynamic(uid_t uid) {
return DYNAMIC_UID_MIN <= uid && uid <= DYNAMIC_UID_MAX;
}
static inline bool gid_is_dynamic(gid_t gid) {
return uid_is_dynamic((uid_t) gid);
}
static inline bool uid_is_container(uid_t uid) {
return CONTAINER_UID_BASE_MIN <= uid && uid <= CONTAINER_UID_BASE_MAX;
}
static inline bool gid_is_container(gid_t gid) {
return uid_is_container((uid_t) gid);
}
/* The following macros add 1 when converting things, since UID 0 is a valid UID, while the pointer
* NULL is special */
#define PTR_TO_UID(p) ((uid_t) (((uintptr_t) (p))-1))

View File

@ -19,6 +19,7 @@
#include "stdio-util.h"
#include "string-util.h"
#include "strv.h"
#include "user-record.h"
#include "user-util.h"
/* Takes a value generated randomly or by hashing and turns it into a UID in the right range */

View File

@ -46,6 +46,7 @@
#include "string-util.h"
#include "strv.h"
#include "tmpfile-util.h"
#include "user-record.h"
#include "user-util.h"
/* The maximum size up to which we process coredumps */

View File

@ -55,6 +55,7 @@
#include "string-table.h"
#include "string-util.h"
#include "syslog-util.h"
#include "user-record.h"
#include "user-util.h"
#define USER_JOURNALS_MAX 1024

View File

@ -43,6 +43,7 @@
#include "string-table.h"
#include "string-util.h"
#include "tomoyo-util.h"
#include "user-record.h"
#include "user-util.h"
#include "util.h"
#include "virt.h"

View File

@ -17,6 +17,30 @@
/* The default disk size to use when nothing else is specified, relative to free disk space */
#define USER_DISK_SIZE_DEFAULT_PERCENT 85
static inline bool uid_is_system(uid_t uid) {
return uid <= SYSTEM_UID_MAX;
}
static inline bool gid_is_system(gid_t gid) {
return gid <= SYSTEM_GID_MAX;
}
static inline bool uid_is_dynamic(uid_t uid) {
return DYNAMIC_UID_MIN <= uid && uid <= DYNAMIC_UID_MAX;
}
static inline bool gid_is_dynamic(gid_t gid) {
return uid_is_dynamic((uid_t) gid);
}
static inline bool uid_is_container(uid_t uid) {
return CONTAINER_UID_BASE_MIN <= uid && uid <= CONTAINER_UID_BASE_MAX;
}
static inline bool gid_is_container(gid_t gid) {
return uid_is_container((uid_t) gid);
}
typedef enum UserDisposition {
USER_INTRINSIC, /* root and nobody */
USER_SYSTEM, /* statically allocated users for system services */

View File

@ -31,6 +31,7 @@
#include "strv.h"
#include "tests.h"
#include "tomoyo-util.h"
#include "user-record.h"
#include "user-util.h"
#include "virt.h"