From 23703598bfb44f8b5c72882fdf26e79a75febb66 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 20 Feb 2009 17:57:42 -0500 Subject: Reorganize sysdb a bit, rename _posix_ function into _legacy_ Add support for the posix legacy mode where memberships are stored in memberUId and not in member/memberof pairs. Do not build sysdb as a library --- server/db/sysdb.h | 87 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 36 deletions(-) (limited to 'server/db/sysdb.h') diff --git a/server/db/sysdb.h b/server/db/sysdb.h index 7b285721..e0dd3349 100644 --- a/server/db/sysdb.h +++ b/server/db/sysdb.h @@ -29,6 +29,7 @@ #define SYSDB_FILE "sssd.ldb" #define SYSDB_BASE "cn=sysdb" +#define SYSDB_DOM_BASE "cn=%s,cn=sysdb" #define SYSDB_TMPL_USER_BASE "cn=users,cn=%s,"SYSDB_BASE #define SYSDB_TMPL_GROUP_BASE "cn=groups,cn=%s,"SYSDB_BASE @@ -36,13 +37,15 @@ #define SYSDB_PWUID_FILTER "(&(objectclass=user)(uidNumber=%lu))" #define SYSDB_PWENT_FILTER "(objectclass=user)" -#define SYSDB_GRNAM_FILTER "(&(objectclass=group)(cn=%s))" +#define SYSDB_GRNAM_FILTER "(&(objectclass=group)(gid=%s))" #define SYSDB_GRNA2_FILTER "(&(objectclass=user)(memberof=%s))" #define SYSDB_GRGID_FILTER "(&(objectclass=group)(gidNumber=%lu))" #define SYSDB_GRENT_FILTER "(objectclass=group)" #define SYSDB_INITGR_FILTER "(&(objectclass=group)(gidNumber=*))" +#define SYSDB_INITGR_LEGACY_FILTER "(&(objectclass=group)(memberUid=%s))" + #define SYSDB_PW_NAME "uid" #define SYSDB_PW_PWD "userPassword" #define SYSDB_PW_UIDNUM "uidNumber" @@ -52,9 +55,10 @@ #define SYSDB_PW_SHELL "loginShell" #define SYSDB_PW_MEMBEROF "memberOf" -#define SYSDB_GR_NAME "cn" +#define SYSDB_GR_NAME "gid" #define SYSDB_GR_GIDNUM "gidNumber" #define SYSDB_GR_MEMBER "member" +#define SYSDB_LEGACY_MEMBER "memberUid" #define SYSDB_LAST_UPDATE "lastUpdate" @@ -64,7 +68,7 @@ SYSDB_LAST_UPDATE, \ NULL} #define SYSDB_GRNAM_ATTRS {SYSDB_GR_NAME, SYSDB_GR_GIDNUM, \ - SYSDB_LAST_UPDATE, \ + SYSDB_LAST_UPDATE, SYSDB_LEGACY_MEMBER, \ NULL} #define SYSDB_GRPW_ATTRS {SYSDB_PW_NAME, SYSDB_LAST_UPDATE, \ NULL} @@ -93,6 +97,7 @@ int sysdb_getpwnam(TALLOC_CTX *mem_ctx, struct sysdb_ctx *ctx, const char *domain, const char *name, + bool legacy, sysdb_callback_t fn, void *ptr); int sysdb_getpwuid(TALLOC_CTX *mem_ctx, @@ -100,11 +105,14 @@ int sysdb_getpwuid(TALLOC_CTX *mem_ctx, struct sysdb_ctx *ctx, const char *domain, uid_t uid, + bool legacy, sysdb_callback_t fn, void *ptr); int sysdb_enumpwent(TALLOC_CTX *mem_ctx, struct event_context *ev, struct sysdb_ctx *ctx, + const char *domain, + bool legacy, sysdb_callback_t fn, void *ptr); int sysdb_getgrnam(TALLOC_CTX *mem_ctx, @@ -112,6 +120,7 @@ int sysdb_getgrnam(TALLOC_CTX *mem_ctx, struct sysdb_ctx *ctx, const char *domain, const char *name, + bool legacy, sysdb_callback_t fn, void *ptr); int sysdb_getgrgid(TALLOC_CTX *mem_ctx, @@ -119,11 +128,14 @@ int sysdb_getgrgid(TALLOC_CTX *mem_ctx, struct sysdb_ctx *ctx, const char *domain, gid_t gid, + bool legacy, sysdb_callback_t fn, void *ptr); int sysdb_enumgrent(TALLOC_CTX *mem_ctx, struct event_context *ev, struct sysdb_ctx *ctx, + const char *domain, + bool legacy, sysdb_callback_t fn, void *ptr); int sysdb_initgroups(TALLOC_CTX *mem_ctx, @@ -131,6 +143,7 @@ int sysdb_initgroups(TALLOC_CTX *mem_ctx, struct sysdb_ctx *ctx, const char *domain, const char *name, + bool legacy, sysdb_callback_t fn, void *ptr); @@ -147,45 +160,47 @@ int sysdb_remove_group_member(TALLOC_CTX *mem_ctx, struct ldb_dn *member_dn, struct ldb_dn *group_dn); -int sysdb_posix_store_user(TALLOC_CTX *memctx, - struct sysdb_ctx *sysdb, - const char *domain, - const char *name, const char *pwd, - uid_t uid, gid_t gid, const char *gecos, - const char *homedir, const char *shell); +int sysdb_delete_user(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, const char *name); + +int sysdb_delete_user_by_uid(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, uid_t uid); -int sysdb_posix_remove_user(TALLOC_CTX *memctx, +int sysdb_add_user_to_group(TALLOC_CTX *mem_ctx, struct sysdb_ctx *sysdb, - const char *domain, const char *name); + const char *domain, + const char *group, + const char *username); + +int sysdb_remove_user_from_group(TALLOC_CTX *mem_ctx, + struct sysdb_ctx *sysdb, + const char *domain, + const char *group, + const char *username); -int sysdb_posix_remove_user_by_uid(TALLOC_CTX *memctx, - struct sysdb_ctx *sysdb, - const char *domain, uid_t uid); +int sysdb_delete_group(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, const char *name); -int sysdb_posix_store_group(TALLOC_CTX *memctx, +int sysdb_delete_group_by_gid(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, gid_t gid); + +/* legacy synchronous functions for proxy providers */ + +int sysdb_legacy_store_user(TALLOC_CTX *memctx, struct sysdb_ctx *sysdb, const char *domain, - const char *name, gid_t gid, - char **members); - -int sysdb_posix_add_user_to_group(TALLOC_CTX *mem_ctx, - struct sysdb_ctx *sysdb, - const char *domain, - const char *group, - const char *username); - -int sysdb_posix_remove_user_from_group(TALLOC_CTX *mem_ctx, - struct sysdb_ctx *sysdb, - const char *domain, - const char *group, - const char *username); - -int sysdb_posix_remove_group(TALLOC_CTX *memctx, - struct sysdb_ctx *sysdb, - const char *domain, const char *name); + const char *name, const char *pwd, + uid_t uid, gid_t gid, const char *gecos, + const char *homedir, const char *shell); -int sysdb_posix_remove_group_by_gid(TALLOC_CTX *memctx, - struct sysdb_ctx *sysdb, - const char *domain, gid_t gid); +int sysdb_legacy_store_group(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, + const char *name, gid_t gid, + char **members); #endif /* __SYS_DB_H__ */ -- cgit