diff options
Diffstat (limited to 'source3/groupdb/mapping.c')
-rw-r--r-- | source3/groupdb/mapping.c | 54 |
1 files changed, 5 insertions, 49 deletions
diff --git a/source3/groupdb/mapping.c b/source3/groupdb/mapping.c index 5641431246..70d6317a77 100644 --- a/source3/groupdb/mapping.c +++ b/source3/groupdb/mapping.c @@ -434,7 +434,7 @@ BOOL check_priv_in_privilege(PRIVILEGE_SET *priv_set, LUID_ATTR set) } /**************************************************************************** -remove a privilege from a privilege array +remove a privilege to a privilege array ****************************************************************************/ BOOL remove_privilege(PRIVILEGE_SET *priv_set, LUID_ATTR set) { @@ -1156,42 +1156,16 @@ BOOL get_uid_list_of_group(gid_t gid, uid_t **uid, int *num_uids) Create a UNIX group on demand. ****************************************************************************/ -int smb_create_group(char *unix_group, gid_t *new_gid) +int smb_create_group(char *unix_group) { pstring add_script; int ret; - int fd = 0; pstrcpy(add_script, lp_addgroup_script()); if (! *add_script) return -1; pstring_sub(add_script, "%g", unix_group); - ret = smbrun(add_script, (new_gid!=NULL) ? &fd : NULL); + ret = smbrun(add_script,NULL); DEBUG(3,("smb_create_group: Running the command `%s' gave %d\n",add_script,ret)); - if (ret != 0) - return ret; - - if (fd != 0) { - fstring output; - - *new_gid = 0; - if (read(fd, output, sizeof(output)) > 0) { - *new_gid = (gid_t)strtoul(output, NULL, 10); - } - close(fd); - - if (*new_gid == 0) { - /* The output was garbage. We assume nobody - will create group 0 via smbd. Now we try to - get the group via getgrnam. */ - - struct group *grp = getgrnam(unix_group); - if (grp != NULL) - *new_gid = grp->gr_gid; - else - return 1; - } - } - return ret; } @@ -1213,25 +1187,7 @@ int smb_delete_group(char *unix_group) } /**************************************************************************** - Set a user's primary UNIX group. -****************************************************************************/ -int smb_set_primary_group(const char *unix_group, const char* unix_user) -{ - pstring add_script; - int ret; - - pstrcpy(add_script, lp_setprimarygroup_script()); - if (! *add_script) return -1; - all_string_sub(add_script, "%g", unix_group, sizeof(add_script)); - all_string_sub(add_script, "%u", unix_user, sizeof(add_script)); - ret = smbrun(add_script,NULL); - DEBUG(3,("smb_set_primary_group: " - "Running the command `%s' gave %d\n",add_script,ret)); - return ret; -} - -/**************************************************************************** - Add a user to a UNIX group. + Create a UNIX group on demand. ****************************************************************************/ int smb_add_user_group(char *unix_group, char *unix_user) @@ -1249,7 +1205,7 @@ int smb_add_user_group(char *unix_group, char *unix_user) } /**************************************************************************** - Delete a user from a UNIX group + Delete a UNIX group on demand. ****************************************************************************/ int smb_delete_user_group(const char *unix_group, const char *unix_user) |