diff options
author | Jeremy Allison <jra@samba.org> | 2001-05-10 06:53:19 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-05-10 06:53:19 +0000 |
commit | aae779d0a3d3c80e6fa010fdb397af3aff360551 (patch) | |
tree | 78e3b71f47bad9200424ce75ec3029a59828f233 | |
parent | dd0c7a8a024f9ba8b593757b3aed5b126a8dab61 (diff) | |
download | samba-aae779d0a3d3c80e6fa010fdb397af3aff360551.tar.gz samba-aae779d0a3d3c80e6fa010fdb397af3aff360551.tar.xz samba-aae779d0a3d3c80e6fa010fdb397af3aff360551.zip |
Don't check for passwd program if using pam change password.
Original patch from Andrew Bartlett.
Jeremy.
-rw-r--r-- | source/utils/testparm.c | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/source/utils/testparm.c b/source/utils/testparm.c index 20f36fcffe4..ae4a12a8825 100644 --- a/source/utils/testparm.c +++ b/source/utils/testparm.c @@ -93,29 +93,37 @@ to a valid password server.\n", sec_setting ); if(lp_security() == SEC_USER && lp_unix_password_sync()) { /* - * Check that we have a valid lp_passwd_program(). + * Check that we have a valid lp_passwd_program() if not using pam. */ - if(lp_passwd_program() == NULL) { - printf("ERROR: the 'unix password sync' parameter is set and there is no valid 'passwd program' \ +#ifdef WITH_PAM + if (!lp_pam_password_change()) { +#endif + + if(lp_passwd_program() == NULL) { + printf("ERROR: the 'unix password sync' parameter is set and there is no valid 'passwd program' \ parameter.\n" ); - ret = 1; - } else { - pstring passwd_prog; - pstring truncated_prog; - char *p; - - pstrcpy( passwd_prog, lp_passwd_program()); - p = passwd_prog; - *truncated_prog = '\0'; - next_token(&p, truncated_prog, NULL, sizeof(pstring)); - - if(access(truncated_prog, F_OK) == -1) { - printf("ERROR: the 'unix password sync' parameter is set and the 'passwd program' (%s) \ -cannot be executed (error was %s).\n", truncated_prog, strerror(errno) ); ret = 1; + } else { + pstring passwd_prog; + pstring truncated_prog; + char *p; + + pstrcpy( passwd_prog, lp_passwd_program()); + p = passwd_prog; + *truncated_prog = '\0'; + next_token(&p, truncated_prog, NULL, sizeof(pstring)); + + if(access(truncated_prog, F_OK) == -1) { + printf("ERROR: the 'unix password sync' parameter is set and the 'passwd program' (%s) \ +cannot be executed (error was %s).\n", truncated_prog, strerror(errno) ); + ret = 1; + } } + +#ifdef WITH_PAM } +#endif if(lp_passwd_chat() == NULL) { printf("ERROR: the 'unix password sync' parameter is set and there is no valid 'passwd chat' \ |