diff options
author | Gerald Carter <jerry@samba.org> | 2004-01-30 14:59:40 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2004-01-30 14:59:40 +0000 |
commit | 52bf070b10ca99be7e4b9d1b5e32f69d2667d8f4 (patch) | |
tree | 704d6bfe05bf634217dd71a2369bb1f2b4c4b1fb /source | |
parent | 9e590d603547ef1e8388bea66eb5d44e4dfd6412 (diff) | |
download | samba-52bf070b10ca99be7e4b9d1b5e32f69d2667d8f4.tar.gz samba-52bf070b10ca99be7e4b9d1b5e32f69d2667d8f4.tar.xz samba-52bf070b10ca99be7e4b9d1b5e32f69d2667d8f4.zip |
disable any account that doesn't have a password and doesn't had the ACB_PWNOTREQ bit set
Diffstat (limited to 'source')
-rw-r--r-- | source/passdb/pdb_interface.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/source/passdb/pdb_interface.c b/source/passdb/pdb_interface.c index c656e087226..e88b58f1e2d 100644 --- a/source/passdb/pdb_interface.c +++ b/source/passdb/pdb_interface.c @@ -714,12 +714,15 @@ BOOL pdb_add_sam_account(SAM_ACCOUNT *sam_acct) if (!pdb_context) { return False; } + + /* disable acccounts with no passwords (that has not + been allowed by the ACB_PWNOTREQ bit */ - /* disable acccounts with no passwords */ lm_pw = pdb_get_lanman_passwd( sam_acct ); nt_pw = pdb_get_lanman_passwd( sam_acct ); - if ( !lm_pw || !nt_pw ) { - acb_flags = pdb_get_acct_ctrl( sam_acct ) | ACB_DISABLED; + acb_flags = pdb_get_acct_ctrl( sam_acct ); + if ( !lm_pw && !nt_pw && !(acb_flags&ACB_PWNOTREQ) ) { + acb_flags |= ACB_DISABLED; pdb_set_acct_ctrl( sam_acct, acb_flags, PDB_SET ); pdb_set_init_flags(sam_acct, PDB_ACCTCTRL, PDB_SET); } @@ -737,11 +740,14 @@ BOOL pdb_update_sam_account(SAM_ACCOUNT *sam_acct) return False; } - /* disable acccounts with no passwords */ + /* disable acccounts with no passwords (that has not + been allowed by the ACB_PWNOTREQ bit */ + lm_pw = pdb_get_lanman_passwd( sam_acct ); nt_pw = pdb_get_lanman_passwd( sam_acct ); - if ( !lm_pw || !nt_pw ) { - acb_flags = pdb_get_acct_ctrl( sam_acct ) | ACB_DISABLED; + acb_flags = pdb_get_acct_ctrl( sam_acct ); + if ( !lm_pw && !nt_pw && !(acb_flags&ACB_PWNOTREQ) ) { + acb_flags |= ACB_DISABLED; pdb_set_acct_ctrl( sam_acct, acb_flags, PDB_SET ); pdb_set_init_flags(sam_acct, PDB_ACCTCTRL, PDB_SET); } |