* Thu Jun 05 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-32.sme
- Replicate user accounts to samba Active Directory [SME: 12799]
This commit is contained in:
@@ -28,6 +28,7 @@ use Errno;
|
||||
use esmith::AccountsDB;
|
||||
|
||||
my $a = esmith::AccountsDB->open_ro or die "Could not open accounts db";
|
||||
my $c = esmith::ConfigDB->open_ro or die "Could not open configuration db";
|
||||
|
||||
foreach my $u ($a->users)
|
||||
{
|
||||
@@ -40,6 +41,23 @@ foreach my $u ($a->users)
|
||||
|
||||
system("/usr/bin/smbpasswd", "-d", $user) == 0
|
||||
or warn("Problem locking smbpassword for user $user\n");
|
||||
|
||||
my $serv = $c->get('samba') || '';
|
||||
if (($serv eq 'service') && ($user ne 'administrator'))
|
||||
{
|
||||
my $samba = $c->get('samba')->prop('status') || 'disabled';
|
||||
my $sambaip = $c->get('samba')->prop('SambaIP') || '';
|
||||
my $sambapwd = $c->get('samba')->prop('Password') || '';
|
||||
if ($sambaip eq '' || $sambapwd eq '')
|
||||
{
|
||||
$samba = 'disabled';
|
||||
}
|
||||
if ($samba eq 'enabled')
|
||||
{
|
||||
system("/usr/bin/samba-tool", "user", "disable", "$user", "-H", "ldap://$sambaip", "--username=administrator", "--password=$sambapwd") == 0
|
||||
or warn("Problem locking addc password for user $user\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -134,4 +134,23 @@ if ($ldapauth ne 'enabled')
|
||||
system("/usr/bin/smbpasswd", "-a", "-d", "$userName")
|
||||
and ( $x = 255, warn "Could not lock (smb) password for $userName\n" );
|
||||
|
||||
my $serv = $conf->get('samba') || '';
|
||||
if (($serv eq 'service') && ($userName ne 'administrator'))
|
||||
{
|
||||
my $samba = $conf->get('samba')->prop('status') || 'disabled';
|
||||
my $sambaip = $conf->get('samba')->prop('SambaIP') || '';
|
||||
my $sambapwd = $conf->get('samba')->prop('Password') || '';
|
||||
if ($sambaip eq '' || $sambapwd eq '')
|
||||
{
|
||||
$samba = 'disabled';
|
||||
}
|
||||
if ($samba eq 'enabled')
|
||||
{
|
||||
system("/usr/bin/samba-tool", "user", "add", "$userName", "--random-password", "-H", "ldap://$sambaip", "--username=administrator", "--password=$sambapwd")
|
||||
and ( $x = 255, warn "Could not create (addc) user for $userName\n" );
|
||||
system("/usr/bin/samba-tool", "user", "disable", "$userName", "-H", "ldap://$sambaip", "--username=administrator", "--password=$sambapwd")
|
||||
and ( $x = 255, warn "Could not lock (addc) password for $userName\n" );
|
||||
}
|
||||
}
|
||||
|
||||
exit ($x);
|
||||
|
@@ -75,4 +75,21 @@ $result && ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to delete (lda
|
||||
$result = $ldap->ldapdelgroup($userName);
|
||||
$result && ( $x = $ldapauth ne 'enabled' ? $x : 255, warn "Failed to delete (ldap) group account $userName.\n" );
|
||||
|
||||
my $serv = $conf->get('samba') || '';
|
||||
if (($serv eq 'service') && ($userName ne 'administrator'))
|
||||
{
|
||||
my $samba = $conf->get('samba')->prop('status') || 'disabled';
|
||||
my $sambaip = $conf->get('samba')->prop('SambaIP') || '';
|
||||
my $sambapwd = $conf->get('samba')->prop('Password') || '';
|
||||
if ($sambaip eq '' || $sambapwd eq '')
|
||||
{
|
||||
$samba = 'disabled';
|
||||
}
|
||||
if ($samba eq 'enabled')
|
||||
{
|
||||
system("/usr/bin/samba-tool", "user", "delete", "$userName", "-H", "ldap://$sambaip", "--username=administrator", "--password=$sambapwd")
|
||||
and ( $x = 255, warn "Failed to delete (addc) account $userName.\n" );
|
||||
}
|
||||
}
|
||||
|
||||
exit ($x);
|
||||
|
@@ -78,6 +78,23 @@ sub lock_user
|
||||
{
|
||||
$conf->set_value('PasswordSet', 'no');
|
||||
}
|
||||
|
||||
my $serv = $conf->get('samba') || '';
|
||||
if (($serv eq 'service') && ($userName ne 'administrator'))
|
||||
{
|
||||
my $samba = $conf->get('samba')->prop('status') || 'disabled';
|
||||
my $sambaip = $conf->get('samba')->prop('SambaIP') || '';
|
||||
my $sambapwd = $conf->get('samba')->prop('Password') || '';
|
||||
if ($sambaip eq '' || $sambapwd eq '')
|
||||
{
|
||||
$samba = 'disabled';
|
||||
}
|
||||
if ($samba eq 'enabled')
|
||||
{
|
||||
system("/usr/bin/samba-tool", "user", "disable", "$userName", "-H", "ldap://$sambaip", "--username=administrator", "--password=$sambapwd") == 0
|
||||
or ( $x = 255, warn "Error locking (addc) account $userName" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub bad_password_users
|
||||
|
Reference in New Issue
Block a user