diff options
author | Andrew Tridgell <tridge@samba.org> | 1999-12-13 13:35:20 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1999-12-13 13:35:20 +0000 |
commit | 32a965e09ce4befe971855e11e1fb5ceb51a9ed1 (patch) | |
tree | 157f164263a56d7e3f2ca1fe9a05a9df24f25234 /source3/passdb/smbpassgroupunix.c | |
parent | 3db52feb1f3b2c07ce0b06ad4a7099fa6efe3fc7 (diff) | |
download | samba-32a965e09ce4befe971855e11e1fb5ceb51a9ed1.tar.gz samba-32a965e09ce4befe971855e11e1fb5ceb51a9ed1.tar.bz2 samba-32a965e09ce4befe971855e11e1fb5ceb51a9ed1.zip |
2nd phase of head branch sync with SAMBA_2_0 - this delets all the files that were in the head branch but weren't in SAMBA_2_0
(This used to be commit d7b208786590b5a28618590172b8d523627dda09)
Diffstat (limited to 'source3/passdb/smbpassgroupunix.c')
-rw-r--r-- | source3/passdb/smbpassgroupunix.c | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/source3/passdb/smbpassgroupunix.c b/source3/passdb/smbpassgroupunix.c deleted file mode 100644 index 66c094d962..0000000000 --- a/source3/passdb/smbpassgroupunix.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Unix SMB/Netbios implementation. Version 1.9. SMB parameters and setup - * Copyright (C) Andrew Tridgell 1992-1998 Modified by Jeremy Allison 1995. - * - * 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 2 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, write to the Free Software Foundation, Inc., 675 - * Mass Ave, Cambridge, MA 02139, USA. - */ - -#include "includes.h" - -#ifdef USE_SMBUNIX_DB - -extern int DEBUGLEVEL; -extern DOM_SID global_sam_sid; - -/*************************************************************** - Start to enumerate the smbpasswd list. Returns a void pointer - to ensure no modification outside this module. -****************************************************************/ - -static void *startsmbunixgrpent(BOOL update) -{ - return startsmbpwent(False); -} - -/*************************************************************** - End enumeration of the smbpasswd list. -****************************************************************/ - -static void endsmbunixgrpent(void *vp) -{ - endsmbpwent(vp); -} - -/************************************************************************* - Return the current position in the smbpasswd list as an SMB_BIG_UINT. - This must be treated as an opaque token. -*************************************************************************/ - -static SMB_BIG_UINT getsmbunixgrppos(void *vp) -{ - return getsmbpwpos(vp); -} - -/************************************************************************* - Set the current position in the smbpasswd list from an SMB_BIG_UINT. - This must be treated as an opaque token. -*************************************************************************/ - -static BOOL setsmbunixgrppos(void *vp, SMB_BIG_UINT tok) -{ - return setsmbpwpos(vp, tok); -} - -/************************************************************************* - Routine to return the next smbpassgroup entry - *************************************************************************/ -static struct smb_passwd *getsmbunixgrpent(void *vp, - uint32 **grp_rids, int *num_grps, - uint32 **als_rids, int *num_alss) -{ - /* Static buffers we will return. */ - struct sam_passwd *pw_buf; - fstring unix_name; - int i; - int unixgrps; - gid_t *grps; - BOOL failed = False; - - if (vp == NULL) - { - DEBUG(0,("getsmbunixgrpent: Bad password file pointer.\n")); - return NULL; - } - - pw_buf = getsam21pwent(vp); - - if (pw_buf == NULL) - { - return NULL; - } - - fstrcpy(unix_name, pw_buf->unix_name); - - if (grp_rids != NULL) - { - (*grp_rids) = NULL; - (*num_grps) = 0; - } - - if (als_rids != NULL) - { - (*als_rids) = NULL; - (*num_alss) = 0; - } - - if (als_rids == NULL && grp_rids == NULL) - { - /* they didn't want to know the members. */ - return pwdb_sam_to_smb(pw_buf); - } - - /* - * find all unix groups - */ - - if (get_unixgroups(unix_name, pw_buf->unix_uid, pw_buf->unix_gid, &unixgrps, &grps)) - { - return NULL; - } - - /* - * check each unix group for a mapping as an nt alias or an nt group - */ - - for (i = 0; i < unixgrps && !failed; i++) - { - uint32 rid; - - /* - * find the unix name for each user's group. - * assume the unix group is an nt name (alias? group? user?) - * (user or not our own domain will be an error). - * - * oh, oh, can anyone spot what's missing heeere? - * you guessed it: built-in aliases. those are in - * Domain S-1-5-20, and NT Domain Users can only - * have lists of RIDs as groups. - * - * doesn't stop you making NT Domain Users a member - * of a BUILTIN Alias (e.g "Administrators" or "Power Users") - * it's just that there's no way to tell that from this - * API call: wrong domain, sorry. - * - */ - - DOM_NAME_MAP gmep; - - if (!lookupsmbgrpgid(grps[i], &gmep)) - { - continue; - } - - sid_split_rid(&gmep.sid, &rid); - if (!sid_equal(&global_sam_sid, &gmep.sid)) - { - continue; - } - - switch (gmep.type) - { - case SID_NAME_ALIAS: - { - if (als_rids != NULL && add_num_to_list(als_rids, num_alss, rid) == NULL) - { - failed = True; - } - break; - } - case SID_NAME_DOM_GRP: - case SID_NAME_WKN_GRP: - { - if (grp_rids != NULL && add_num_to_list(grp_rids, num_grps, rid) == NULL) - { - failed = True; - } - break; - } - default: - { - break; - } - } - } - - if (failed) - { - if (grp_rids != NULL && (*grp_rids) != NULL) - { - free(*grp_rids); - (*num_grps) = 0; - } - - if (als_rids != NULL && (*als_rids) != NULL) - { - free(*als_rids); - (*num_alss) = 0; - } - - return NULL; - } - - return pwdb_sam_to_smb(pw_buf); -} - -static struct passgrp_ops smbunixgrp_ops = -{ - startsmbunixgrpent, - endsmbunixgrpent, - getsmbunixgrppos, - setsmbunixgrppos, - iterate_getsmbgrpntnam, /* In passgrp.c */ - iterate_getsmbgrpuid, /* In passgrp.c */ - iterate_getsmbgrprid, /* In passgrp.c */ - getsmbunixgrpent -}; - -struct passgrp_ops *unix_initialise_password_grp(void) -{ - return &smbunixgrp_ops; -} - -#else - /* Do *NOT* make this function static. It breaks the compile on gcc. JRA */ - void smbpassgroupunix_dummy_function(void) { } /* stop some compilers complaining */ -#endif /* USE_SMBPASS_DB */ |