1. Patch pour smbldap-useradd
Version du paquet installé
root@olivia:~# apt-cache show smbldap-tools | grep -A6 installed |tail -1
Version: 0.9.2-3
Remarque: la version 0.9.5 est disponible mais je ne tenterai pas le diable
Valeur du domaine pour les mails
root@olivia:~# grep mailDomain /etc/smbldap-tools/smbldap.conf
mailDomain="davidgis.fr"
Téléchargement des patchs
Ils sont disponibles à Â
http://www.davidgis.fr/download/smbldap-tools.patches.zip
Avant le patch : échec du mail lors de la création de compte
root@olivia:~# smbldap-useradd -a -s /bin/bash -c "John DOE" -m -P -M "jdoe" john.doe
failed to add entry: mailLocalAddress: attribute type undefined at /usr/sbin/smbldap-useradd line 508.
Il faut aussi s'assurer de ne pas avoir d'actif la ligne concernant misc dans
slapd.conf
root@olivia:~# grep misc /etc/ldap/slapd.conf
#include /etc/ldap/schema/misc.schema
Contenu du patch
root@olivia:/usr/sbin# cat smbldap-useradd.patch
--- smbldap-useradd.orig 2010-10-11 17:25:26.000000000 +0200
+++ smbldap-useradd 2010-10-11 23:27:21.000000000 +0200
@@ -390,15 +390,15 @@ if (@userMailLocal) {
push(@mail, $m.($domain ? '@'.$domain : ''));
}
}
- push(@adds, 'mailLocalAddress' => [ @userMailLocal ]);
+# push(@adds, 'mailLocalAddress' => [ @userMailLocal ]);
push(@adds, 'mail' => [ @mail ]);
}
if (@userMailTo) {
push(@adds, 'mailRoutingAddress' => [ @userMailTo ]);
}
-if (@userMailLocal || @userMailTo) {
- push(@adds, 'objectClass' => 'inetLocalMailRecipient');
-}
+#if (@userMailLocal || @userMailTo) {
+# push(@adds, 'objectClass' => 'inetLocalMailRecipient');
+#}
# Add Samba user infos
if (defined($Options{'a'})) {
Application du patch: succès pour le mail lors de la création de compte
root@olivia:~# cd /usr/sbin/
root@olivia:/usr/sbin# patch -p0 < smbldap-useradd.patch
patching file smbldap-useradd
tentative de création de compte
root@olivia:/usr/sbin# smbldap-useradd -a -s /bin/bash -c "John DOE" -m -P -M "jdoe" john.doe
Changing UNIX and samba passwords for john.doe
New password:
Retype new password:
root@olivia:/usr/sbin# smbldap-usershow john.doe
dn: uid=john.doe,ou=Users,dc=chezdavid,dc=local
objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount,sambaSamAccount
cn: john.doe
sn: john.doe
givenName: john.doe
uid: john.doe
uidNumber: 1078
gidNumber: 513
homeDirectory: /home/user/john.doe
loginShell: /bin/bash
gecos: John DOE
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
displayName: John DOE
sambaSID: S-1-5-21-1415261554-1678781555-2387323355-3156
sambaPrimaryGroupSID: S-1-5-21-1415261554-1678781555-2387323355-513
mail: jdoe@davidgis.fr
sambaLMPassword: BAC14D04669EE1D1AAD3B435B51404EE
sambaAcctFlags: [U]
sambaNTPassword: FBBF55D0EF0E34D39593F55C5F2CA5F2
sambaPwdLastSet: 1286833585
sambaPwdMustChange: 1602193585
userPassword: {SSHA}Iqv8ZBcalHjwNYFr4C900yWCfVdXZkpY
2. Patch pour smbldap-usermod
Contenu du patch
--- smbldap-usermod.orig 2010-10-11 23:39:20.000000000 +0200
+++ smbldap-usermod 2010-10-12 00:10:07.000000000 +0200
@@ -237,7 +237,7 @@ if ($tmp= $Options{'M'}) {
my @old_MailLocal;
my @old_mail;
@old_mail = $user_entry->get_value('mail');
- @old_MailLocal = $user_entry->get_value('mailLocalAddress');
+# @old_MailLocal = $user_entry->get_value('mailLocalAddress');
if ($action eq '+') {
@userMailLocal = &list_union(\@old_MailLocal, \@userMailLocal);
@mail = &list_union(\@old_mail, \@mail);
@@ -246,7 +246,7 @@ if ($tmp= $Options{'M'}) {
@mail = &list_minus(\@old_mail, \@mail);
}
}
- push(@mods, 'mailLocalAddress', [ @userMailLocal ]);
+# push(@mods, 'mailLocalAddress', [ @userMailLocal ]);
push(@mods, 'mail' => [ @mail ]);
$mailobj = 1;
}
@@ -273,7 +273,7 @@ if ($tmp= $Options{'T'}) {
if ($mailobj) {
my @objectclass = $user_entry->get_value('objectClass');
if (! grep ($_ =~ /^inetLocalMailRecipient$/i, @objectclass)) {
- push(@mods, 'objectClass' => [ @objectclass, 'inetLocalMailRecipient' ]);
+# push(@mods, 'objectClass' => [ @objectclass, 'inetLocalMailRecipient' ]);
}
}
Changement de l'attribut mail d'un compte
root@olivia:/usr/sbin# smbldap-usermod -M john.doe john.doe
root@olivia:/usr/sbin# smbldap-usershow john.doe | grep mail
mail: john.doe@davidgis.fr