mirror of
https://github.com/samba-team/samba.git
synced 2025-02-04 17:47:26 +03:00
port mods from 2.2
(This used to be commit f796f18a83cd2fc0988612aa38c794f005efbfaf)
This commit is contained in:
parent
a18387851c
commit
39b61ab3a4
@ -141,8 +141,14 @@ static BOOL init_sam_from_buffer (SAM_ACCOUNT *sampass, uint8 *buf, uint32 bufle
|
||||
pdb_set_acct_desc (sampass, acct_desc_len?acct_desc:NULL);
|
||||
pdb_set_workstations (sampass, workstations_len?workstations:NULL);
|
||||
pdb_set_munged_dial (sampass, munged_dial_len?munged_dial:NULL);
|
||||
pdb_set_lanman_passwd(sampass, lmpwlen?lm_pw_ptr:NULL);
|
||||
pdb_set_nt_passwd (sampass, ntpwlen?nt_pw_ptr:NULL);
|
||||
if (!pdb_set_lanman_passwd(sampass, lmpwlen?lm_pw_ptr:NULL)) {
|
||||
ret = False;
|
||||
goto done;
|
||||
}
|
||||
if (!pdb_set_nt_passwd(sampass, ntpwlen?nt_pw_ptr:NULL)) {
|
||||
ret = False;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*pdb_set_uid(sampass, uid);
|
||||
pdb_set_gid(sampass, gid);*/
|
||||
@ -427,6 +433,9 @@ BOOL pdb_getsampwent(SAM_ACCOUNT *user)
|
||||
char *prefix = USERPREFIX;
|
||||
int prefixlen = strlen (prefix);
|
||||
|
||||
const char *sam_user;
|
||||
pstring sam_subst;
|
||||
|
||||
if (user==NULL) {
|
||||
DEBUG(0,("pdb_get_sampwent: SAM_ACCOUNT is NULL.\n"));
|
||||
return False;
|
||||
@ -471,6 +480,17 @@ BOOL pdb_getsampwent(SAM_ACCOUNT *user)
|
||||
pdb_set_uid(user, uid);
|
||||
pdb_set_gid(user, gid);
|
||||
|
||||
/* 21 days from present */
|
||||
pdb_set_pass_must_change_time(user, time(NULL)+1814400);
|
||||
|
||||
sam_user = pdb_get_username(user);
|
||||
pstrcpy(sam_subst, pdb_get_logon_script(user));
|
||||
standard_sub_advanced(-1, sam_user, "", gid, sam_user, sam_subst);
|
||||
pstrcpy(sam_subst, pdb_get_profile_path(user));
|
||||
standard_sub_advanced(-1, pdb_get_username(user), "", gid, pdb_get_username(user), sam_subst);
|
||||
pstrcpy(sam_subst, pdb_get_homedir(user));
|
||||
standard_sub_advanced(-1, pdb_get_username(user), "", gid, pdb_get_username(user), sam_subst);
|
||||
|
||||
/* increment to next in line */
|
||||
global_tdb_ent.key = tdb_nextkey(global_tdb_ent.passwd_tdb, global_tdb_ent.key);
|
||||
|
||||
@ -492,6 +512,8 @@ BOOL pdb_getsampwnam (SAM_ACCOUNT *user, const char *sname)
|
||||
uid_t uid;
|
||||
gid_t gid;
|
||||
|
||||
char *sam_user;
|
||||
pstring sam_subst;
|
||||
|
||||
if (user==NULL) {
|
||||
DEBUG(0,("pdb_getsampwnam: SAM_ACCOUNT is NULL.\n"));
|
||||
@ -533,7 +555,7 @@ BOOL pdb_getsampwnam (SAM_ACCOUNT *user, const char *sname)
|
||||
}
|
||||
SAFE_FREE(data.dptr);
|
||||
|
||||
/* cleanup */
|
||||
/* no further use for database, close it now */
|
||||
tdb_close(pwd_tdb);
|
||||
|
||||
/* validate the account and fill in UNIX uid and gid. sys_getpwnam()
|
||||
@ -544,6 +566,17 @@ BOOL pdb_getsampwnam (SAM_ACCOUNT *user, const char *sname)
|
||||
gid = pw->pw_gid;
|
||||
pdb_set_uid(user, uid);
|
||||
pdb_set_gid(user, gid);
|
||||
|
||||
/* 21 days from present */
|
||||
pdb_set_pass_must_change_time(user, time(NULL)+1814400);
|
||||
|
||||
sam_user = pdb_get_username(user);
|
||||
pstrcpy(sam_subst, pdb_get_logon_script(user));
|
||||
standard_sub_advanced(-1, sam_user, "", gid, sam_user, sam_subst);
|
||||
pstrcpy(sam_subst, pdb_get_profile_path(user));
|
||||
standard_sub_advanced(-1, pdb_get_username(user), "", gid, pdb_get_username(user), sam_subst);
|
||||
pstrcpy(sam_subst, pdb_get_homedir(user));
|
||||
standard_sub_advanced(-1, pdb_get_username(user), "", gid, pdb_get_username(user), sam_subst);
|
||||
}
|
||||
else {
|
||||
DEBUG(0,("pdb_getsampwent: getpwnam(%s) return NULL. User does not exist!\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user