diff options
author | Jeremy Allison <jra@samba.org> | 2001-04-30 21:05:58 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-04-30 21:05:58 +0000 |
commit | c3a999409db6a9e0d38928feb02ab6815bd28d57 (patch) | |
tree | 21b62d6dbd8929d1d56e4828569273c0d37ac4b9 /source3/smbd/chgpasswd.c | |
parent | 07a229ec55c74f4bc26cfeefdaff8157c62cdc29 (diff) | |
download | samba-c3a999409db6a9e0d38928feb02ab6815bd28d57.tar.gz samba-c3a999409db6a9e0d38928feb02ab6815bd28d57.tar.bz2 samba-c3a999409db6a9e0d38928feb02ab6815bd28d57.zip |
Based on an original PAM patch by Andrew Bartlett, re-written by me to
remove global static PAM variables, and to tidy up the PAM internals code.
Now looks like the rest of Samba.
Still needs testing.
Jeremy.
(This used to be commit 1648ac64a75de74d1a1575eb49cccc4f75488bfa)
Diffstat (limited to 'source3/smbd/chgpasswd.c')
-rw-r--r-- | source3/smbd/chgpasswd.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source3/smbd/chgpasswd.c b/source3/smbd/chgpasswd.c index 21b7722307..72e97abc3b 100644 --- a/source3/smbd/chgpasswd.c +++ b/source3/smbd/chgpasswd.c @@ -54,6 +54,24 @@ extern struct passdb_ops pdb_ops; #if ALLOW_CHANGE_PASSWORD +#ifdef WITH_PAM +BOOL chgpasswd(char *name, char *oldpass, char *newpass, BOOL as_root) +{ + BOOL ret; + + if (as_root) + become_root(); + + ret = smb_pam_passchange(name, oldpass, newpass); + + if (as_root) + unbecome_root(); + + return ret; +} + +#else /* WITH_PAM */ + static int findpty(char **slave) { int master; @@ -527,7 +545,10 @@ BOOL chgpasswd(char *name, char *oldpass, char *newpass, BOOL as_root) (passwordprogram, name, chatsequence, as_root)); } +#endif /* WITH_PAM */ + #else /* ALLOW_CHANGE_PASSWORD */ + BOOL chgpasswd(char *name, char *oldpass, char *newpass, BOOL as_root) { DEBUG(0, ("Password changing not compiled in (user=%s)\n", name)); |