summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2004-01-30 15:01:43 +0000
committerGerald Carter <jerry@samba.org>2004-01-30 15:01:43 +0000
commitcf3347927e806b1755c090559ceeb4ee22bc2f99 (patch)
tree5640bdb3698e18ab75332a0f7a225c8bdf94cb7a
parent39fc929c0a50ad6fe6a78c729452376a12aa526f (diff)
downloadsamba-cf3347927e806b1755c090559ceeb4ee22bc2f99.tar.gz
samba-cf3347927e806b1755c090559ceeb4ee22bc2f99.tar.xz
samba-cf3347927e806b1755c090559ceeb4ee22bc2f99.zip
disable any account that doesn't have a password and doesn't had the ACB_PWNOTREQ bit set
-rw-r--r--source/passdb/pdb_interface.c18
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);
}