From c22c50c2fb9bc962fd11a2c9924481485faae093 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 12 Jan 2009 15:59:53 -0500 Subject: Regroup database rleated functions under db and rename everything with the sysdb suffix. --- server/db/sysdb.h | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 server/db/sysdb.h (limited to 'server/db/sysdb.h') diff --git a/server/db/sysdb.h b/server/db/sysdb.h new file mode 100644 index 000000000..5b7875961 --- /dev/null +++ b/server/db/sysdb.h @@ -0,0 +1,148 @@ +/* + SSSD + + System Databse Header + + Copyright (C) Simo Sorce 2008 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef __SYS_DB_H__ +#define __SYS_DB_H__ + +#include "ldb.h" +#include "ldb_errors.h" + +#define SYSDB_CONF_SECTION "config/sysdb" +#define SYSDB_FILE "sssd.ldb" + +#define SYSDB_BASE "cn=sysdb" +#define SYSDB_TMPL_USER_BASE "cn=users,cn=%s,"SYSDB_BASE +#define SYSDB_TMPL_GROUP_BASE "cn=groups,cn=%s,"SYSDB_BASE + +#define SYSDB_PWNAM_FILTER "(&(objectclass=user)(uid=%s))" +#define SYSDB_PWUID_FILTER "(&(objectclass=user)(uidNumber=%lu))" +#define SYSDB_PWENT_FILTER "(objectclass=user)" + +#define SYSDB_GRNAM_FILTER "(&(objectclass=group)(cn=%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_PW_NAME "uid" +#define SYSDB_PW_PWD "userPassword" +#define SYSDB_PW_UIDNUM "uidNumber" +#define SYSDB_PW_GIDNUM "gidNumber" +#define SYSDB_PW_FULLNAME "fullName" +#define SYSDB_PW_HOMEDIR "homeDirectory" +#define SYSDB_PW_SHELL "loginShell" + +#define SYSDB_GR_NAME "cn" +#define SYSDB_GR_GIDNUM "gidNumber" +#define SYSDB_GR_MEMBER "member" + +#define SYSDB_LAST_UPDATE "lastUpdate" + +#define SYSDB_PW_ATTRS {SYSDB_PW_NAME, SYSDB_PW_UIDNUM, \ + SYSDB_PW_GIDNUM, SYSDB_PW_FULLNAME, \ + SYSDB_PW_HOMEDIR, SYSDB_PW_SHELL, \ + SYSDB_LAST_UPDATE, \ + NULL} +#define SYSDB_GRNAM_ATTRS {SYSDB_GR_NAME, SYSDB_GR_GIDNUM, \ + SYSDB_LAST_UPDATE, \ + NULL} +#define SYSDB_GRPW_ATTRS {SYSDB_PW_NAME, SYSDB_LAST_UPDATE, \ + NULL} + +#define SYSDB_INITGR_ATTR "memberof" +#define SYSDB_INITGR_ATTRS {SYSDB_GR_GIDNUM, SYSDB_LAST_UPDATE, \ + NULL} + +struct sysdb_ctx { + struct ldb_context *ldb; + const char *ldb_file; +}; + +struct confdb_ctx; + +typedef void (*sysdb_callback_t)(void *, int, struct ldb_result *); + +int sysdb_init(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct confdb_ctx *cdb, + struct sysdb_ctx **nlctx); + +int sysdb_getpwnam(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct sysdb_ctx *ctx, + const char *domain, + const char *name, + sysdb_callback_t fn, void *ptr); + +int sysdb_getpwuid(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct sysdb_ctx *ctx, + const char *domain, + uint64_t uid, + sysdb_callback_t fn, void *ptr); + +int sysdb_enumpwent(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct sysdb_ctx *ctx, + sysdb_callback_t fn, void *ptr); + +int sysdb_getgrnam(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct sysdb_ctx *ctx, + const char *domain, + const char *name, + sysdb_callback_t fn, void *ptr); + +int sysdb_getgrgid(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct sysdb_ctx *ctx, + const char *domain, + uint64_t gid, + sysdb_callback_t fn, void *ptr); + +int sysdb_enumgrent(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct sysdb_ctx *ctx, + sysdb_callback_t fn, void *ptr); + +int sysdb_initgroups(TALLOC_CTX *mem_ctx, + struct event_context *ev, + struct sysdb_ctx *ctx, + const char *domain, + const char *name, + sysdb_callback_t fn, void *ptr); + +int sysdb_store_account_posix(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, + char *name, char *pwd, + uint64_t uid, uint64_t gid, + char *gecos, char *homedir, char *shell); + +int sysdb_remove_account_posix(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, const char *name); + +int sysdb_remove_account_posix_by_uid(TALLOC_CTX *memctx, + struct sysdb_ctx *sysdb, + const char *domain, uid_t uid); +#endif /* __SYS_DB_H__ */ -- cgit