Scribe AD » Historique » Version 81
Fabrice Barconnière, 31/01/2018 16:05
1 | 35 | Gérald Schwartzmann | h1. Travaux des options 1 à 5 |
---|---|---|---|
2 | 35 | Gérald Schwartzmann | |
3 | 1 | Benjamin Bohard | {{>toc}} |
4 | 34 | Gérald Schwartzmann | |
5 | 58 | Benjamin Bohard | h2. Tableau récapitulatif |
6 | 58 | Benjamin Bohard | |
7 | 66 | Joël Cuissinat | !{width:900px}tableau_options_seth.png! |
8 | 58 | Benjamin Bohard | |
9 | 78 | Gérald Schwartzmann | * [[Scribe_AD#Scribe-membre-de-lAD-Seth-avec-eole-ad-option-1|Option 1 : Scribe membre de l'AD Seth (eole-ad)]] |
10 | 62 | Joël Cuissinat | * Option 2 : Gestion des comptes du Seth avec l'EAD2 |
11 | 62 | Joël Cuissinat | * Option 3 : Migration d'un Scribe NT en Scribe AD |
12 | 76 | Gérald Schwartzmann | * [[Scribe_AD#Faire-fonctionner-Scribe-et-Seth-sur-une-seule-machine-option-4|Option 4 : Portage des services du Scribe sur un Seth (OpenLDAP compris)]] |
13 | 77 | Gérald Schwartzmann | * [[Scribe_AD#Portage-des-actions-EAD2-vers-EAD3-option-5|Option 5 : Gestion des comptes du Seth + services Scribe avec l'EAD3]] |
14 | 77 | Gérald Schwartzmann | |
15 | 61 | Joël Cuissinat | h1. Scribe membre de l'AD Seth avec eole-ad (option 1) |
16 | 34 | Gérald Schwartzmann | |
17 | 40 | Gérald Schwartzmann | Installer un Seth DC avec un Scribe membre (les comptes sont créés sur l'AD)" + intégration de LSC pour la synchronisation #22659 |
18 | 40 | Gérald Schwartzmann | |
19 | 34 | Gérald Schwartzmann | h2. Actions |
20 | 34 | Gérald Schwartzmann | |
21 | 34 | Gérald Schwartzmann | h3. Utilisation d'un Scribe 2.6.2 |
22 | 34 | Gérald Schwartzmann | |
23 | 36 | Gérald Schwartzmann | * Utilisation de l'infra etb1 avec des postes joints au domaine NT de Scribe |
24 | 1 | Benjamin Bohard | * Configuration du serveur Amon |
25 | 36 | Gérald Schwartzmann | * Installation d'Eole-AD sur le serveur Scribe en production |
26 | 36 | Gérald Schwartzmann | * Modification du mot de passe admin dans l'EAD 2 de Scribe |
27 | 36 | Gérald Schwartzmann | * Retrait des postes du domaine NT |
28 | 36 | Gérald Schwartzmann | * Jonction de poste Windows au domaine AD de Seth |
29 | 47 | Fabrice Barconnière | ** manuelle AD %{color:green}OK% |
30 | 49 | Fabrice Barconnière | ** joineole AD avec installation client Scribe %{color:red}KO% |
31 | 49 | Fabrice Barconnière | ** joineole AD sans installation du client Scribe %{color:green}OK% |
32 | 49 | Fabrice Barconnière | * Connexion au domaine |
33 | 49 | Fabrice Barconnière | ** connexion %{color:green}OK% |
34 | 49 | Fabrice Barconnière | ** accès aux partages GUEST %{color:red}KO% |
35 | 49 | Fabrice Barconnière | *** @joineole@ positionne des clés de registre qui posent problème |
36 | 49 | Fabrice Barconnière | <pre> |
37 | 52 | Fabrice Barconnière | [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] |
38 | 49 | Fabrice Barconnière | "DNSNameResolutionRequired"=dword:00000000 |
39 | 52 | Fabrice Barconnière | "DomainCompatibilityMode"=dword:00000001 |
40 | 49 | Fabrice Barconnière | </pre> |
41 | 49 | Fabrice Barconnière | *** Après modification des clés de registre %{color:green}OK% |
42 | 49 | Fabrice Barconnière | <pre> |
43 | 52 | Fabrice Barconnière | [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] |
44 | 49 | Fabrice Barconnière | "DNSNameResolutionRequired"=dword:00000001 |
45 | 49 | Fabrice Barconnière | "DomainCompatibilityMode"=dword:00000000 |
46 | 49 | Fabrice Barconnière | </pre> |
47 | 49 | Fabrice Barconnière | * Installation du client Scribe après jonction au domaine |
48 | 49 | Fabrice Barconnière | ** Sans modifier les attributs d'exécution des fichiers @/home/client_scribe/cliscribe-setup.exe@ et @/home/a/admin/perso/client/cliscribe-updater-setup.exe@ %{color:red}KO% |
49 | 49 | Fabrice Barconnière | ** Ajout des attributs +x aux installeurs %{color:green}OK% |
50 | 44 | Fabrice Barconnière | ** controle-VNC AD %{color:green}OK% |
51 | 47 | Fabrice Barconnière | * Modification de mots de passe dans l'EAD 2 |
52 | 51 | Fabrice Barconnière | ** synchro sur AD %{color:green}OK% |
53 | 47 | Fabrice Barconnière | * Importation annuelle des bases dans l'EAD 2 |
54 | 50 | Fabrice Barconnière | ** Synchro des comptes et des mots de passe vers AD %{color:green}OK% |
55 | 44 | Fabrice Barconnière | |
56 | 36 | Gérald Schwartzmann | h3. Problèmes rencontrés |
57 | 1 | Benjamin Bohard | |
58 | 46 | Fabrice Barconnière | * Configuration du serveur Amon pour la prise en charge d'un sous-domaine DNS #22731 |
59 | 53 | Fabrice Barconnière | * Incompatibilité de LSC avec Java 8 et 9 #22730 |
60 | 36 | Gérald Schwartzmann | * La variable ad_server n'était pas initialisée pour la jonction au domaine, jonction au domaine de l'AD impossible #22704 |
61 | 36 | Gérald Schwartzmann | * Problème de résolution des zones forward sur Amon #22707 |
62 | 39 | Gérald Schwartzmann | * La demande de modification des mots au redémarrage du poste Windows ne fonctionne pas sur AD |
63 | 39 | Gérald Schwartzmann | * ClientScribe empêche l'accès aux partages GUEST |
64 | 39 | Gérald Schwartzmann | * Les postes n'exécutent plus les scripts ou exécutables présent sur les partages Scribe s'ils n'ont pas l'attribut +x |
65 | 36 | Gérald Schwartzmann | |
66 | 57 | Fabrice Barconnière | h2. Pistes de travail et correctifs à prévoir |
67 | 34 | Gérald Schwartzmann | |
68 | 34 | Gérald Schwartzmann | * Changement à faire sur le module Amon |
69 | 54 | Fabrice Barconnière | ** -Développement sur la partie DNS pour la prise en charge de sous-zones- #22731 |
70 | 34 | Gérald Schwartzmann | |
71 | 34 | Gérald Schwartzmann | * Changement à faire sur le module Scribe |
72 | 1 | Benjamin Bohard | ** -Faire fonctionner LSC avec Java 8 ou 9 ou backporter le paquet Java 7 et modifier la dépendance du paquet eole-ad- #22730 |
73 | 57 | Fabrice Barconnière | ** Tester une migration avec un classicupgrade pour éviter la réinitialisation des MDP, la sortie des machines du domaine NT et la jonction au nouveau domaine. |
74 | 57 | Fabrice Barconnière | *** Utiliser un Scribe en production en mode NT |
75 | 57 | Fabrice Barconnière | *** effectuer l'opération classicupgrade sur le serveur Seth (instancié à confirmer lors des tests) : |
76 | 57 | Fabrice Barconnière | https://wiki.samba.org/index.php/Migrating_a_Samba_NT4_Domain_to_Samba_AD_(Classic_Upgrade)#Upgrading_on_a_new_server |
77 | 57 | Fabrice Barconnière | *** effectuer l'installation et la configuration de eole-ad sur Scribe en suivant la même procédure |
78 | 1 | Benjamin Bohard | |
79 | 39 | Gérald Schwartzmann | * EAD 2 |
80 | 39 | Gérald Schwartzmann | ** Faire fonctionner le changement de mot de passe à l'ouverture de session |
81 | 39 | Gérald Schwartzmann | |
82 | 55 | Fabrice Barconnière | * JoinEole |
83 | 55 | Fabrice Barconnière | ** Ne pas positionner les clés de registre si on est sur AD pour permettre l'accès aux partages GUEST |
84 | 34 | Gérald Schwartzmann | |
85 | 56 | Fabrice Barconnière | * Résoudre le problème des fichiers exécutables sur les partages |
86 | 56 | Fabrice Barconnière | |
87 | 63 | Joël Cuissinat | h1. Scribe AD (option 3) |
88 | 18 | Emmanuel GARETTE | |
89 | 1 | Benjamin Bohard | h2. Actions |
90 | 1 | Benjamin Bohard | |
91 | 2 | Benjamin Bohard | h3. Migration du Scribe NT vers Scribe AD |
92 | 1 | Benjamin Bohard | |
93 | 1 | Benjamin Bohard | h4. Procédure classicupgrade |
94 | 3 | Benjamin Bohard | |
95 | 3 | Benjamin Bohard | La procédure classicupgrade nécessite des interventions complémentaires (pouvant être scriptées). |
96 | 3 | Benjamin Bohard | |
97 | 20 | Benjamin Bohard | En partant d’un Scribe fonctionnel instancié avec import de comptes et un poste joint au domaine. |
98 | 3 | Benjamin Bohard | |
99 | 3 | Benjamin Bohard | h5. stopper et désactiver les services de samba en mode NT (smbd, nmbd, winbind), |
100 | 10 | Benjamin Bohard | |
101 | 3 | Benjamin Bohard | <pre> |
102 | 3 | Benjamin Bohard | systemctl stop nmbd |
103 | 3 | Benjamin Bohard | systemctl stop smbd |
104 | 3 | Benjamin Bohard | systemctl stop winbind |
105 | 3 | Benjamin Bohard | systemctl disable nmbd |
106 | 3 | Benjamin Bohard | systemctl disable smbd |
107 | 3 | Benjamin Bohard | systemctl disable winbind |
108 | 3 | Benjamin Bohard | </pre> |
109 | 3 | Benjamin Bohard | |
110 | 24 | Philippe Caseiro | h5. mettre à jour la version de samba (Optionnel pour des raison de tests) |
111 | 1 | Benjamin Bohard | |
112 | 24 | Philippe Caseiro | A faire uniquement si vous voulez tester avec la version samba 4.7 |
113 | 24 | Philippe Caseiro | |
114 | 23 | Benjamin Bohard | <pre> |
115 | 80 | Fabrice Barconnière | cat >>/etc/apt/sources.list.d/samba.list<<EOF |
116 | 81 | Fabrice Barconnière | deb [ arch=amd64 ] http://test-eole.ac-dijon.fr/samba samba-4.7 main |
117 | 23 | Benjamin Bohard | EOF |
118 | 23 | Benjamin Bohard | </pre> |
119 | 23 | Benjamin Bohard | |
120 | 23 | Benjamin Bohard | <pre> |
121 | 23 | Benjamin Bohard | Maj-Auto |
122 | 23 | Benjamin Bohard | CreoleCat -t smb.conf |
123 | 23 | Benjamin Bohard | </pre> |
124 | 23 | Benjamin Bohard | |
125 | 3 | Benjamin Bohard | h5. installer les outils nécessaires : |
126 | 10 | Benjamin Bohard | |
127 | 3 | Benjamin Bohard | <pre> |
128 | 11 | Benjamin Bohard | apt-get install krb5-user ldb-tools |
129 | 3 | Benjamin Bohard | </pre> |
130 | 3 | Benjamin Bohard | |
131 | 3 | Benjamin Bohard | h5. patcher nsswitch.conf.default, ldap.conf |
132 | 3 | Benjamin Bohard | |
133 | 3 | Benjamin Bohard | <pre> |
134 | 3 | Benjamin Bohard | --- distrib/nsswitch.conf.default 2017-05-15 11:18:44.000000000 +0200 |
135 | 3 | Benjamin Bohard | +++ modif/nsswitch.conf.default 2018-01-09 15:12:53.260292570 +0100 |
136 | 3 | Benjamin Bohard | @@ -7,8 +7,8 @@ |
137 | 3 | Benjamin Bohard | ######################################################## |
138 | 3 | Benjamin Bohard | # /etc/nsswitch.conf |
139 | 3 | Benjamin Bohard | |
140 | 3 | Benjamin Bohard | -%set %%active_winbind = %%getVar('activer_winbind', 'non') == 'oui' |
141 | 3 | Benjamin Bohard | -%set %%active_ldap = %%getVar('ldap_nss', 'non') == 'oui' |
142 | 3 | Benjamin Bohard | +%set %%active_winbind = True |
143 | 3 | Benjamin Bohard | +%set %%active_ldap = False |
144 | 3 | Benjamin Bohard | |
145 | 3 | Benjamin Bohard | passwd: compat %slurp |
146 | 3 | Benjamin Bohard | %if %%active_ldap |
147 | 3 | Benjamin Bohard | </pre> |
148 | 3 | Benjamin Bohard | |
149 | 12 | Benjamin Bohard | <pre> |
150 | 12 | Benjamin Bohard | --- distrib/ldap.conf 2017-04-05 12:25:55.000000000 +0200 |
151 | 12 | Benjamin Bohard | +++ modif/ldap.conf 2018-01-10 14:39:19.008000000 +0100 |
152 | 12 | Benjamin Bohard | @@ -13,7 +13,7 @@ |
153 | 12 | Benjamin Bohard | |
154 | 12 | Benjamin Bohard | %if %%active_ldap == 'oui' |
155 | 12 | Benjamin Bohard | host %%adresse_ip_ldap |
156 | 12 | Benjamin Bohard | -base %%ldap_base_dn |
157 | 12 | Benjamin Bohard | +base DC=etb1,DC=lan |
158 | 12 | Benjamin Bohard | port %%ldap_port |
159 | 12 | Benjamin Bohard | timelimit 10 |
160 | 12 | Benjamin Bohard | bind_time_limit 10 |
161 | 12 | Benjamin Bohard | @@ -23,8 +23,8 @@ |
162 | 12 | Benjamin Bohard | pam_login_attribute uid |
163 | 12 | Benjamin Bohard | pam_password md5 |
164 | 12 | Benjamin Bohard | nss_map_attribute gecos displayName |
165 | 12 | Benjamin Bohard | -nss_base_passwd %%ldap_base_dn?sub |
166 | 12 | Benjamin Bohard | -nss_base_group %%ldap_base_dn?sub |
167 | 12 | Benjamin Bohard | +nss_base_passwd DC=etb1,DC=lan?sub |
168 | 12 | Benjamin Bohard | +nss_base_group DC=etb1,DC=lan?sub |
169 | 12 | Benjamin Bohard | #fixe #1809 |
170 | 12 | Benjamin Bohard | nss_initgroups_ignoreusers root |
171 | 12 | Benjamin Bohard | %if %%ldap_tls == 'oui' |
172 | 12 | Benjamin Bohard | </pre> |
173 | 12 | Benjamin Bohard | |
174 | 3 | Benjamin Bohard | h5. déplacer la configuration samba actuelle dans un répertoire de travail |
175 | 3 | Benjamin Bohard | |
176 | 3 | Benjamin Bohard | <pre> |
177 | 3 | Benjamin Bohard | mv /etc/samba/ /etc/samba.PDC/ |
178 | 3 | Benjamin Bohard | </pre> |
179 | 3 | Benjamin Bohard | |
180 | 3 | Benjamin Bohard | h5. renommer le fichier de configuration smb.conf de ce répertoire de travail, |
181 | 3 | Benjamin Bohard | |
182 | 3 | Benjamin Bohard | <pre> |
183 | 3 | Benjamin Bohard | mv /etc/samba.PDC/smb.conf /etc/samba.PDC/smb.PDC.conf |
184 | 3 | Benjamin Bohard | </pre> |
185 | 3 | Benjamin Bohard | |
186 | 3 | Benjamin Bohard | h5. copier les bases de données de samba dans un sous-répertoire du répertoire de travail |
187 | 3 | Benjamin Bohard | |
188 | 3 | Benjamin Bohard | <pre> |
189 | 14 | Benjamin Bohard | mkdir /etc/samba.PDC/dbdir/ |
190 | 13 | Benjamin Bohard | cp -p /var/lib/samba/private/secrets.tdb /etc/samba.PDC/dbdir/ |
191 | 13 | Benjamin Bohard | cp -p /var/lib/samba/private/schannel_store.tdb /etc/samba.PDC/dbdir/ |
192 | 13 | Benjamin Bohard | cp -p /var/lib/samba/private/passdb.tdb /etc/samba.PDC/dbdir/ |
193 | 15 | Benjamin Bohard | #cp -p /var/lib/samba/var/lock/gencache_notrans.tdb /etc/samba.PDC/dbdir/ |
194 | 15 | Benjamin Bohard | cp -p /var/lib/samba/group_mapping.tdb /etc/samba.PDC/dbdir/ |
195 | 15 | Benjamin Bohard | cp -p /var/lib/samba/account_policy.tdb /etc/samba.PDC/dbdir/ |
196 | 1 | Benjamin Bohard | </pre> |
197 | 3 | Benjamin Bohard | |
198 | 8 | Benjamin Bohard | h5. lancer la commande samba-tool domain classicupgrade |
199 | 8 | Benjamin Bohard | |
200 | 1 | Benjamin Bohard | <pre> |
201 | 8 | Benjamin Bohard | realm=$(CreoleGet nom_domaine_local) |
202 | 33 | Benjamin Bohard | </pre> |
203 | 32 | Benjamin Bohard | |
204 | 32 | Benjamin Bohard | Pour samba 4.3.11 : |
205 | 32 | Benjamin Bohard | <pre> |
206 | 8 | Benjamin Bohard | samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --use-xattrs=yes --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf |
207 | 8 | Benjamin Bohard | </pre> |
208 | 32 | Benjamin Bohard | |
209 | 32 | Benjamin Bohard | Pour samba 4.7 (on enlève l’option pour xattrs) : |
210 | 32 | Benjamin Bohard | <pre> |
211 | 32 | Benjamin Bohard | samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf |
212 | 32 | Benjamin Bohard | </pre> |
213 | 32 | Benjamin Bohard | |
214 | 79 | Fabrice Barconnière | h5. créer le patch smb.conf à partir du nouveau fichier créé par samba-tool (bien renseigner le forwarder dns) |
215 | 8 | Benjamin Bohard | |
216 | 21 | Benjamin Bohard | <pre> |
217 | 21 | Benjamin Bohard | [global] |
218 | 21 | Benjamin Bohard | realm = ETB1.LAN |
219 | 21 | Benjamin Bohard | workgroup = DOMPEDAGO |
220 | 21 | Benjamin Bohard | netbios name = SCRIBE |
221 | 21 | Benjamin Bohard | |
222 | 21 | Benjamin Bohard | # disable netbios legacy protocol, only port 445 ! |
223 | 21 | Benjamin Bohard | disable netbios = yes |
224 | 21 | Benjamin Bohard | smb ports = 445 |
225 | 21 | Benjamin Bohard | |
226 | 21 | Benjamin Bohard | |
227 | 21 | Benjamin Bohard | vfs objects = acl_xattr |
228 | 21 | Benjamin Bohard | map acl inherit = Yes |
229 | 21 | Benjamin Bohard | store dos attributes = Yes |
230 | 21 | Benjamin Bohard | winbind separator = / |
231 | 21 | Benjamin Bohard | |
232 | 21 | Benjamin Bohard | server role = active directory domain controller |
233 | 21 | Benjamin Bohard | dns forwarder = 192.168.232.2 |
234 | 21 | Benjamin Bohard | |
235 | 21 | Benjamin Bohard | # active TLS (pour LDAPS et la maj des mot de passe ! |
236 | 21 | Benjamin Bohard | tls enabled = yes |
237 | 21 | Benjamin Bohard | tls keyfile = /var/lib/samba/private/tls/key.pem |
238 | 21 | Benjamin Bohard | tls certfile = /var/lib/samba/private/tls/cert.pem |
239 | 21 | Benjamin Bohard | tls cafile = /var/lib/samba/private/tls/ca.pem |
240 | 21 | Benjamin Bohard | |
241 | 21 | Benjamin Bohard | [netlogon] |
242 | 21 | Benjamin Bohard | comment = Network Logon Service |
243 | 21 | Benjamin Bohard | path = /home/sysvol/ac-test.fr/scripts |
244 | 21 | Benjamin Bohard | read only = No |
245 | 21 | Benjamin Bohard | guest ok = yes |
246 | 21 | Benjamin Bohard | |
247 | 21 | Benjamin Bohard | [sysvol] |
248 | 21 | Benjamin Bohard | comment = Sysvol Service |
249 | 21 | Benjamin Bohard | path = /home/sysvol |
250 | 21 | Benjamin Bohard | read only = No |
251 | 21 | Benjamin Bohard | guest ok = yes |
252 | 21 | Benjamin Bohard | |
253 | 21 | Benjamin Bohard | [homes] |
254 | 21 | Benjamin Bohard | path = "/home/a/%u" |
255 | 21 | Benjamin Bohard | comment = Home Directories |
256 | 21 | Benjamin Bohard | read only = no |
257 | 21 | Benjamin Bohard | root preexec = /usr/share/eole/sbin/create_adhome.sh "%u" "/home/a/" |
258 | 21 | Benjamin Bohard | invalid users = nobody guest |
259 | 21 | Benjamin Bohard | |
260 | 21 | Benjamin Bohard | </pre> |
261 | 21 | Benjamin Bohard | |
262 | 26 | Benjamin Bohard | h5. installer le script pour la création du home |
263 | 26 | Benjamin Bohard | |
264 | 26 | Benjamin Bohard | <pre> |
265 | 26 | Benjamin Bohard | #!/bin/bash |
266 | 26 | Benjamin Bohard | login=${1} |
267 | 26 | Benjamin Bohard | homebasedir=${2} |
268 | 26 | Benjamin Bohard | userdir="${homebasedir}/${login}" |
269 | 26 | Benjamin Bohard | [ -d "${userdir}" ] && exit 0 |
270 | 26 | Benjamin Bohard | mkdir -p "${userdir}" |
271 | 26 | Benjamin Bohard | setfacl -Rbk "${userdir}" |
272 | 26 | Benjamin Bohard | chmod 700 "${userdir}" |
273 | 26 | Benjamin Bohard | setfacl -m u:${login}:rwx "${userdir}" |
274 | 26 | Benjamin Bohard | setfacl -dm u:${login}:rwx "${userdir}" |
275 | 26 | Benjamin Bohard | </pre> |
276 | 26 | Benjamin Bohard | |
277 | 8 | Benjamin Bohard | h5. stopper et désactiver le service slapd |
278 | 8 | Benjamin Bohard | |
279 | 8 | Benjamin Bohard | <pre> |
280 | 8 | Benjamin Bohard | systemctl stop slapd |
281 | 8 | Benjamin Bohard | systemctl disable slapd |
282 | 8 | Benjamin Bohard | </pre> |
283 | 8 | Benjamin Bohard | |
284 | 8 | Benjamin Bohard | h5. créer le compte reader |
285 | 8 | Benjamin Bohard | |
286 | 8 | Benjamin Bohard | <pre> |
287 | 8 | Benjamin Bohard | cat /root/.reader |
288 | 8 | Benjamin Bohard | samba-tool user create reader |
289 | 8 | Benjamin Bohard | </pre> |
290 | 8 | Benjamin Bohard | |
291 | 8 | Benjamin Bohard | h5. modifier les variables |
292 | 8 | Benjamin Bohard | |
293 | 8 | Benjamin Bohard | Le base DN est maintenant du type DC=etb1,DC=lan. |
294 | 8 | Benjamin Bohard | |
295 | 8 | Benjamin Bohard | Le compte reader est maintenant du type CN=reader,CN=Users,DC=etb1,DC=lan. |
296 | 8 | Benjamin Bohard | |
297 | 25 | Philippe Caseiro | h5. modifier les scripts de posttemplate 02-annuaire et 04-fichier et 00-annuaire en pretemplate |
298 | 8 | Benjamin Bohard | |
299 | 8 | Benjamin Bohard | exit 0 ajouté en tête des fichiers pour ne pas faire les traitements. |
300 | 8 | Benjamin Bohard | |
301 | 8 | Benjamin Bohard | h5. activer et démarrer le service samba-ad-dc |
302 | 8 | Benjamin Bohard | |
303 | 8 | Benjamin Bohard | <pre> |
304 | 8 | Benjamin Bohard | systemctl enable samba-ad-dc |
305 | 8 | Benjamin Bohard | systemctl start samba-ad-dc |
306 | 8 | Benjamin Bohard | </pre> |
307 | 8 | Benjamin Bohard | |
308 | 8 | Benjamin Bohard | h5. reconfigure |
309 | 8 | Benjamin Bohard | |
310 | 8 | Benjamin Bohard | h5. stopper le service nmbd |
311 | 8 | Benjamin Bohard | |
312 | 8 | Benjamin Bohard | Le service nmbd est démarré automatiquement par creole |
313 | 8 | Benjamin Bohard | <pre> |
314 | 8 | Benjamin Bohard | systemctl stop nmbd |
315 | 3 | Benjamin Bohard | </pre> |
316 | 1 | Benjamin Bohard | |
317 | 10 | Benjamin Bohard | h4. Points à traiter |
318 | 10 | Benjamin Bohard | |
319 | 10 | Benjamin Bohard | h5. service nmbd |
320 | 10 | Benjamin Bohard | |
321 | 10 | Benjamin Bohard | Le service nmbd est géré par creole et sa désactivation manuelle n’est pas suffisante |
322 | 10 | Benjamin Bohard | |
323 | 10 | Benjamin Bohard | h5. variables creole |
324 | 10 | Benjamin Bohard | |
325 | 10 | Benjamin Bohard | Les variables concernant l’annuaire sont verrouillées (même après import du fichier de configuration : valeurs par défaut). |
326 | 10 | Benjamin Bohard | |
327 | 10 | Benjamin Bohard | Il n’est pas possible de modifier, hors des patchs, les valeurs pour le base DN, le protocole (ldaps), etc. |
328 | 10 | Benjamin Bohard | |
329 | 22 | Benjamin Bohard | h5. mise à jour samba |
330 | 22 | Benjamin Bohard | |
331 | 22 | Benjamin Bohard | Conflit avec eole-fichier-common-pkg pour la fourniture du fichier smbd.service |
332 | 22 | Benjamin Bohard | |
333 | 31 | Benjamin Bohard | h5. configuration de samba |
334 | 31 | Benjamin Bohard | |
335 | 31 | Benjamin Bohard | Vérifier que le fichier de configuration est adéquate pour un contrôleur de domaine avec des partages. |
336 | 31 | Benjamin Bohard | |
337 | 30 | Benjamin Bohard | h5. création des homes |
338 | 10 | Benjamin Bohard | |
339 | 30 | Benjamin Bohard | Le client cherche à se connecter sur un partage nommé <REALM>\<user>. |
340 | 10 | Benjamin Bohard | |
341 | 30 | Benjamin Bohard | Les clients doivent pouvoir remonter leur ancien home (<user>). |
342 | 10 | Benjamin Bohard | |
343 | 9 | Philippe Caseiro | h2. Pistes de travail pour la migration de l'annuaire |
344 | 9 | Philippe Caseiro | |
345 | 9 | Philippe Caseiro | Proposition de méthode pour arriver a un Scribe AD en utilisant malgré-tout une |
346 | 9 | Philippe Caseiro | partie du travail déjà fait par l'équipe samba dans sa procédure |
347 | 9 | Philippe Caseiro | classicupgrade. |
348 | 9 | Philippe Caseiro | |
349 | 9 | Philippe Caseiro | La procédure proprement dite n'est pas suffisante pour nous et l'utilisation |
350 | 9 | Philippe Caseiro | brute de l'outil samba non plus, cet outil réalise le provisionning AD et les |
351 | 9 | Philippe Caseiro | initialisations des fichiers db, hors pour bien faire nous avons besoin que samba ai |
352 | 9 | Philippe Caseiro | connaissance des schemas complémentaires du scribe (radius, eole, ent ...). |
353 | 9 | Philippe Caseiro | avant la migration des comptes. Pour lui ajouter les dit schémas il faut que |
354 | 9 | Philippe Caseiro | les fichiers db soient initialisées, donc l'utilisation de l'outil est |
355 | 9 | Philippe Caseiro | impossible. Par chance il utilise la lib python samaba, ce qui nous ouvre des |
356 | 9 | Philippe Caseiro | possibilités. Sans oublié que l'outil samba crée la configuration pour samba |
357 | 9 | Philippe Caseiro | a partir de l'ancienne et cette fonctionnalités ne nous ai pas vraiment utile. |
358 | 9 | Philippe Caseiro | |
359 | 9 | Philippe Caseiro | Donc l'idée est de recréer une procédure de migration complête pour nos |
360 | 9 | Philippe Caseiro | besoins. |
361 | 9 | Philippe Caseiro | |
362 | 9 | Philippe Caseiro | Il faut donc refaire le provisionning de l'AD ce qui est fait dans Seth donc |
363 | 9 | Philippe Caseiro | nous pouvons utiliser cette base de travail |
364 | 9 | Philippe Caseiro | |
365 | 9 | Philippe Caseiro | Migrer les shemas complémentaires actuels au format lisible par samba4. |
366 | 9 | Philippe Caseiro | |
367 | 9 | Philippe Caseiro | Créer un script de migration des comptes qui ajoute les schemas, utilise la |
368 | 9 | Philippe Caseiro | lib python samba4 pour migrer les comptes et ensuite mettre à jour les comptes |
369 | 9 | Philippe Caseiro | avec les attributs supplémentaires de l'ancien annuaire. |
370 | 17 | Emmanuel GARETTE | |
371 | 65 | Joël Cuissinat | h1. Remplacement du Client Scribe (Options 2, 3, 5) |
372 | 1 | Benjamin Bohard | |
373 | 65 | Joël Cuissinat | h2. Application de policies : https://dev-eole.ac-dijon.fr/issues/22666 |
374 | 17 | Emmanuel GARETTE | |
375 | 17 | Emmanuel GARETTE | Le portage des règles Esu en policies AD va être compliqué et aléatoire. Il existe beaucoup de manières d'implémenter ces règles (fichier INI, fichier XML, Register.pol, ...). Il va falloir tester règle par règle comment c'est généré via RSAT. |
376 | 1 | Benjamin Bohard | |
377 | 17 | Emmanuel GARETTE | Si on veut générer les règles depuis Gaspacho il va falloir : |
378 | 1 | Benjamin Bohard | |
379 | 65 | Joël Cuissinat | # connaître le format de chaque règle ; |
380 | 65 | Joël Cuissinat | # créer des "parseurs" pour chaque format ; |
381 | 17 | Emmanuel GARETTE | # écrire les fichiers ".gasp" pour que les règles soient prise en compte dans Gaspacho ; |
382 | 17 | Emmanuel GARETTE | # créer les GPO suivant les groupes gaspacho + associer les différents critères de sélection (utilisateur/machine) ; |
383 | 65 | Joël Cuissinat | # lancer les différents parseurs quand on applique les règles Gaspacho ; |
384 | 17 | Emmanuel GARETTE | |
385 | 17 | Emmanuel GARETTE | |
386 | 65 | Joël Cuissinat | h2. Exécuter des scripts au démarrage de la machine/connexion des utilisateurs : https://dev-eole.ac-dijon.fr/issues/22665 |
387 | 17 | Emmanuel GARETTE | |
388 | 17 | Emmanuel GARETTE | L'exécution de script de démarrage est pris en compte par le système de GPO. Cela peut être des scripts "machines" (au démarrage ou arrêt du serveur) ou "utilisateurs" (à l'ouverture ou fermeture de la session). |
389 | 17 | Emmanuel GARETTE | |
390 | 1 | Benjamin Bohard | Il faut un mécanisme pour générer les scripts comme c'était fait sous Scribe. |
391 | 17 | Emmanuel GARETTE | |
392 | 65 | Joël Cuissinat | De plus nous n'avons pas réussi a lancer un Script diffusé via le partage netlogon. Il va falloir trouver un moyen de les diffuser. |
393 | 17 | Emmanuel GARETTE | |
394 | 65 | Joël Cuissinat | h2. Mappage des partages : https://dev-eole.ac-dijon.fr/issues/22667 |
395 | 19 | Emmanuel GARETTE | |
396 | 65 | Joël Cuissinat | Il s'agit d'un fichier XML par GPO possiblement générable. |
397 | 19 | Emmanuel GARETTE | |
398 | 65 | Joël Cuissinat | h2. Pouvoir lancer des commandes à distance : https://dev-eole.ac-dijon.fr/issues/22665 |
399 | 19 | Emmanuel GARETTE | |
400 | 65 | Joël Cuissinat | Il y a plusieurs pistes possible mais aucune n'a été testée avec succès. |
401 | 19 | Emmanuel GARETTE | |
402 | 65 | Joël Cuissinat | h2. Observation des postes : https://dev-eole.ac-dijon.fr/issues/22664 |
403 | 65 | Joël Cuissinat | |
404 | 65 | Joël Cuissinat | Nécessite l'exécution de commandes à distance. |
405 | 58 | Benjamin Bohard | |
406 | 64 | Joël Cuissinat | h1. Portage des actions EAD2 vers EAD3 (option 5) |
407 | 58 | Benjamin Bohard | |
408 | 58 | Benjamin Bohard | https://dev-eole.ac-dijon.fr/issues/22725 |
409 | 58 | Benjamin Bohard | https://dev-eole.ac-dijon.fr/issues/22670 |
410 | 58 | Benjamin Bohard | https://dev-eole.ac-dijon.fr/issues/22727 |
411 | 58 | Benjamin Bohard | https://dev-eole.ac-dijon.fr/issues/22726 |
412 | 58 | Benjamin Bohard | https://dev-eole.ac-dijon.fr/issues/22733 |
413 | 58 | Benjamin Bohard | https://dev-eole.ac-dijon.fr/issues/22728 |
414 | 58 | Benjamin Bohard | |
415 | 58 | Benjamin Bohard | h2. Gestion des comptes et groupes |
416 | 58 | Benjamin Bohard | |
417 | 58 | Benjamin Bohard | Le changement le plus important est le passage à une infrastructure séparant le contrôleur de domaine et le serveur de fichiers. |
418 | 58 | Benjamin Bohard | |
419 | 58 | Benjamin Bohard | Les actions pour la gestion des comptes et groupes impactent le contrôleur de domaine et le serveur de fichier. Une action unique doit agir sur deux serveurs. |
420 | 58 | Benjamin Bohard | |
421 | 58 | Benjamin Bohard | Le code doit être repensé pour permettre de déclencher des traitements répartis sur différents serveurs à partir d’une même action dans l’interface. |
422 | 58 | Benjamin Bohard | |
423 | 58 | Benjamin Bohard | La piste de salt-syndic a été étudiée pour répartir les traitements composant une action sur les serveurs concernés. |
424 | 58 | Benjamin Bohard | |
425 | 58 | Benjamin Bohard | h2. Les applications externes |
426 | 58 | Benjamin Bohard | |
427 | 59 | Joël Cuissinat | Pas de problème particulier pour les applications externes (CUPS, Sympa, EOP, etc.). |
428 | 59 | Joël Cuissinat | |
429 | 67 | Joël Cuissinat | h1. Faire fonctionner Scribe et Seth sur une seule machine (option 4) |
430 | 67 | Joël Cuissinat | |
431 | 67 | Joël Cuissinat | h2. Infrastructure |
432 | 67 | Joël Cuissinat | |
433 | 67 | Joël Cuissinat | Utilisation d'une machine @aca.dc1@ |
434 | 67 | Joël Cuissinat | |
435 | 67 | Joël Cuissinat | h2. Installation |
436 | 67 | Joël Cuissinat | |
437 | 67 | Joël Cuissinat | h3. Paquets |
438 | 67 | Joël Cuissinat | |
439 | 67 | Joël Cuissinat | * Installation des paquets : eole-annuaire eole-scribe-backend eole-scribehorus eole-courier eole-mysql eole-antivirus eole-annuaire-pkg |
440 | 67 | Joël Cuissinat | * Installation des dépendances de eole-ad : lsc openjdk-8-jre libcrypt-saltedhash-perl |
441 | 67 | Joël Cuissinat | |
442 | 67 | Joël Cuissinat | h3. Dépôts Git |
443 | 67 | Joël Cuissinat | |
444 | 70 | Joël Cuissinat | Du fait de nombreux conflits entre paquets, certains fichiers doivent être installés manuellement. |
445 | 70 | Joël Cuissinat | |
446 | 67 | Joël Cuissinat | * Installation à la main par les dépôts Git : eole-fichier conf-scribe eole-commun eole-ad |
447 | 67 | Joël Cuissinat | |
448 | 67 | Joël Cuissinat | <pre> |
449 | 67 | Joël Cuissinat | git clone https://dev-eole.ac-dijon.fr/git/conf-scribe.git |
450 | 67 | Joël Cuissinat | git clone https://dev-eole.ac-dijon.fr/git/eole-fichier.git |
451 | 67 | Joël Cuissinat | git clone https://dev-eole.ac-dijon.fr/eole-ad.git |
452 | 67 | Joël Cuissinat | </pre> |
453 | 67 | Joël Cuissinat | |
454 | 67 | Joël Cuissinat | * Copies manuelles de fichiers |
455 | 67 | Joël Cuissinat | ** eole-fichier : |
456 | 67 | Joël Cuissinat | <pre> |
457 | 67 | Joël Cuissinat | ./common/dicos/20_fichier.xml |
458 | 67 | Joël Cuissinat | ./primaire/dicos/20_fichier-primaire.xml |
459 | 67 | Joël Cuissinat | primaire/tmpl/smb-include_global.conf |
460 | 67 | Joël Cuissinat | primaire/tmpl/smbldap.conf |
461 | 67 | Joël Cuissinat | primaire/tmpl/smbldap_bind.conf |
462 | 67 | Joël Cuissinat | </pre> |
463 | 67 | Joël Cuissinat | ** eole-ad : |
464 | 67 | Joël Cuissinat | <pre> |
465 | 67 | Joël Cuissinat | make install |
466 | 67 | Joël Cuissinat | </pre> |
467 | 67 | Joël Cuissinat | |
468 | 67 | Joël Cuissinat | h3. Nettoyage |
469 | 67 | Joël Cuissinat | |
470 | 67 | Joël Cuissinat | * 20_fichier-primaire.xml : commenter les balises <package> et <file> sauf smbldap.conf et smbldap_bind.conf |
471 | 67 | Joël Cuissinat | * 25_smb_ad.xml : commenter la balise <file> krb5.conf, restaurer le template krb5.conf fourni par le paquet eole-ad-dc (@apt-get install --reinstall eole-ad-dc@) |
472 | 67 | Joël Cuissinat | |
473 | 67 | Joël Cuissinat | h3. Variable en double |
474 | 67 | Joël Cuissinat | |
475 | 67 | Joël Cuissinat | Entre eole-ad-dc et eole-ad, 2 variables différentes portent le même nom ! |
476 | 67 | Joël Cuissinat | |
477 | 67 | Joël Cuissinat | Renommer la variable ad_domain qui est en double en provenance d'eole-ad : |
478 | 67 | Joël Cuissinat | * dicos/26_eolead.xml |
479 | 67 | Joël Cuissinat | * distrib/lsc.xml *3 |
480 | 67 | Joël Cuissinat | * distrib/smbldap_bind.conf *2 |
481 | 67 | Joël Cuissinat | |
482 | 68 | Joël Cuissinat | h3. Hack DNS |
483 | 68 | Joël Cuissinat | |
484 | 68 | Joël Cuissinat | Supprimer la redéfinition de la variable adresse_ip_dns et sa balise auto calc_multi_val dans |
485 | 69 | Joël Cuissinat | /usr/share/eole/creole/dicos/26_eolead.xml |
486 | 68 | Joël Cuissinat | |
487 | 68 | Joël Cuissinat | h3. Hack LDAP PORT |
488 | 68 | Joël Cuissinat | |
489 | 68 | Joël Cuissinat | Le serveur AD utilise déjà le port ldap standard (389), il faut modifier le port du service OpenLDAP (en 390 par exemple). |
490 | 68 | Joël Cuissinat | |
491 | 68 | Joël Cuissinat | La modification de la variable *ldap_port* n'est pas suffisante, plusieurs templates doivent être adaptés : |
492 | 68 | Joël Cuissinat | * /usr/share/eole/creole/distrib/smbldap.conf |
493 | 68 | Joël Cuissinat | ** slaveLDAP="ldap://%%adresse_ip_ldap:%%ldap_port/" |
494 | 68 | Joël Cuissinat | ** masterLDAP="ldap://%%adresse_ip_ldap:%%ldap_port/" |
495 | 68 | Joël Cuissinat | * /usr/share/eole/creole/distrib/lsc.xml |
496 | 68 | Joël Cuissinat | * /usr/share/eole/creole/distrib/default.slapd |
497 | 68 | Joël Cuissinat | |
498 | 68 | Joël Cuissinat | Ainsi que les fichiers suivants : |
499 | 69 | Joël Cuissinat | * /usr/lib/python2.7/dist-packages/scribe/eoleldap.py (ligne 73) |
500 | 69 | Joël Cuissinat | ** @self.connexion = ldap.open(self.serveur, 390)@ |
501 | 68 | Joël Cuissinat | * /usr/share/eole/posttemplate/02-annuaire |
502 | 68 | Joël Cuissinat | ** ajout de "-h 127.0.0.1:390" à la commande ldappasswd |
503 | 1 | Benjamin Bohard | * /usr/share/eole/diagnose/21-annuaire |
504 | 1 | Benjamin Bohard | ** ajout de "-h 127.0.0.1:390" aux commandes ldapsearch |
505 | 1 | Benjamin Bohard | |
506 | 69 | Joël Cuissinat | Les deux dernières modifications sont facultatives si on configure "correctement" le fichier /etc/ldap/ldap.conf : |
507 | 69 | Joël Cuissinat | * /usr/share/eole/creole/distrib/ldap.conf |
508 | 69 | Joël Cuissinat | ** host 127.0.0.1:390 |
509 | 69 | Joël Cuissinat | |
510 | 69 | Joël Cuissinat | Note : si on configure la variable "port" de ce fichier, ça ne marche pas... |
511 | 69 | Joël Cuissinat | |
512 | 69 | Joël Cuissinat | h3. Hack sur la jonction au domaine et l'initialisation lsc |
513 | 69 | Joël Cuissinat | |
514 | 69 | Joël Cuissinat | * /usr/share/eole/posttemplate/05-eolead |
515 | 69 | Joël Cuissinat | ** le serveur ne peut être membre de son propre domaine, une partie du code doit être commentée |
516 | 69 | Joël Cuissinat | ** la synchro lsc initiale est appelée alors que le service samba-ad-dc est stoppé (et potentiellement non initialisé), un contournement possible est de déplacer ce script en postservice. Dans ce cas, il faut redémarrer le service lsc sinon ce dernier n'a pas les bons mots de passe (FIXME) |
517 | 69 | Joël Cuissinat | |
518 | 72 | Joël Cuissinat | h2. Configuration |
519 | 69 | Joël Cuissinat | |
520 | 69 | Joël Cuissinat | Principaux éléments du config.eol utilisé : |
521 | 69 | Joël Cuissinat | <pre> |
522 | 69 | Joël Cuissinat | "activer_clam":{"owner":"gen_config","val":"non"}, |
523 | 69 | Joël Cuissinat | "activer_nginx_web":{"owner":"gen_config","val":"non"}, |
524 | 69 | Joël Cuissinat | "activer_sso":{"owner":"gen_config","val":"non"}, |
525 | 69 | Joël Cuissinat | "ad_additional_dc":{"owner":"gen_config","val":"non"}, |
526 | 69 | Joël Cuissinat | "ad_address":{"owner":"gen_config","val":"192.168.0.5"}, |
527 | 69 | Joël Cuissinat | "ad_ldaps":{"owner":"gen_config","val":"oui"}, |
528 | 69 | Joël Cuissinat | "ad_server":{"owner":"gen_config","val":"dc1"}, |
529 | 69 | Joël Cuissinat | "ad_server_role":{"owner":"gen_config","val":"controleur de domaine"}, |
530 | 69 | Joël Cuissinat | "ad_user":{"owner":"gen_config","val":"Administrator"}, |
531 | 69 | Joël Cuissinat | "adresse_ip_dns":{"owner":"gen_config","val":["192.168.232.2"]}, |
532 | 69 | Joël Cuissinat | "adresse_ip_eth0":{"owner":"gen_config","val":"192.168.0.5"}, |
533 | 69 | Joël Cuissinat | "ldap_port":{"owner":"gen_config","val":390}, |
534 | 69 | Joël Cuissinat | "libelle_etab":{"owner":"gen_config","val":"aca"}, |
535 | 69 | Joël Cuissinat | "nom_academie":{"owner":"gen_config","val":"ac-test"}, |
536 | 69 | Joël Cuissinat | "nom_domaine_local":{"owner":"gen_config","val":"ac-test.fr"}, |
537 | 69 | Joël Cuissinat | "nom_machine":{"owner":"gen_config","val":"dc1"}, |
538 | 69 | Joël Cuissinat | "numero_etab":{"owner":"gen_config","val":"0000000A"}, |
539 | 69 | Joël Cuissinat | "serveur_ntp":{"owner":"basique","val":["hestia.eole.lan"]}, |
540 | 69 | Joël Cuissinat | "smb_netbios_name":{"owner":"gen_config","val":"ac-test"}, |
541 | 69 | Joël Cuissinat | "smb_workgroup":{"owner":"gen_config","val":"pedago"}, |
542 | 69 | Joël Cuissinat | </pre> |
543 | 69 | Joël Cuissinat | |
544 | 69 | Joël Cuissinat | Variables calculées : |
545 | 69 | Joël Cuissinat | * ad_domain : "ac-test" |
546 | 69 | Joël Cuissinat | * ad_domain2 (pour eole-ad) : "ac-test.fr" |
547 | 69 | Joël Cuissinat | |
548 | 69 | Joël Cuissinat | Il faut également exécuter la procédure d'intégration la CA du module Seth au Java Keystore décrite dans "la doc":http://eole.ac-dijon.fr/documentations/2.6/partielles/beta/ModuleSeth/co/eole-AD.html#tcN27f |
549 | 69 | Joël Cuissinat | |
550 | 73 | Joël Cuissinat | h2. Utilisation de l'EAD2 |
551 | 69 | Joël Cuissinat | |
552 | 69 | Joël Cuissinat | * Création de groupes |
553 | 69 | Joël Cuissinat | ** comme nous n'avions pas installé eole-sympa, nous avons du créer le fichier @/etc/mail/sympa/aliases@ à la main pour les groupes avec liste de diffusion obligatoire |
554 | 69 | Joël Cuissinat | ** la création d'un groupe avec partage entraîne le re-démarrage du service samba (NT) qui est désactivé (le commenter) |
555 | 69 | Joël Cuissinat | * Création d'un élève |
556 | 69 | Joël Cuissinat | ** Le compte élève a été créé dans les deux annuaires sans erreur particulière |
557 | 67 | Joël Cuissinat | |
558 | 59 | Joël Cuissinat | h1. Gestion (directe) des comptes AD via l'EAD2 (options 2 et 3) |
559 | 59 | Joël Cuissinat | |
560 | 59 | Joël Cuissinat | h2. Remplacement de l'appel à @smbldap-useradd@ par @samba-tool user create@ |
561 | 59 | Joël Cuissinat | |
562 | 59 | Joël Cuissinat | Objectif du POC : Créer un enseignant directement dans AD à l'aide de la commande "backend" suivante : |
563 | 59 | Joël Cuissinat | |
564 | 59 | Joël Cuissinat | <pre> |
565 | 59 | Joël Cuissinat | /usr/share/eole/backend/creation-prof.py -u <login> -m "Eole12345\$" -p Prénom -f Nom |
566 | 59 | Joël Cuissinat | </pre> |
567 | 59 | Joël Cuissinat | |
568 | 59 | Joël Cuissinat | Librairies python concernées : |
569 | 59 | Joël Cuissinat | * /usr/lib/python2.7/dist-packages/scribe/enseignants.py |
570 | 59 | Joël Cuissinat | * /usr/lib/python2.7/dist-packages/scribe/eoleuser.py |
571 | 59 | Joël Cuissinat | ** méthode _add : remplacement de l'utilisation de smbldap-tools par samba-tools dans "if self.has_samba:" |
572 | 59 | Joël Cuissinat | |
573 | 59 | Joël Cuissinat | Arguments reçus par la fonction : |
574 | 59 | Joël Cuissinat | @{'syncpassword': True, 'disciplines': '', 'change_pwd': False, 'int_id': '', 'mail_acad': '', 'profil': '1', 'etab': None, 'mail': 'internet', 'patronyme': '', 'nom': 'Nom', 'shell': False, 'quota': '0', 'entpersonjointure': '', 'groups': [], 'date': '00000101', 'password': 'Eole12345$', 'prenom': 'Pr\xc3\xa9nom', 'admin': False, 'classe': '', 'entlogin': True, 'civilite': '1', 'login': 'prof4'}@ |
575 | 59 | Joël Cuissinat | |
576 | 59 | Joël Cuissinat | Commande smbldap appelée par la fonction : |
577 | 59 | Joël Cuissinat | <pre> |
578 | 59 | Joël Cuissinat | /usr/sbin/smbldap-useradd -a -A 1 -D U: -H U -o ou=local,ou=personnels -s /bin/false -d /home/p/prof4 -C \\\\ac-test\\prof4\\perso -F -g professeurs -G DomainUsers <login> |
579 | 59 | Joël Cuissinat | </pre> |
580 | 59 | Joël Cuissinat | |
581 | 59 | Joël Cuissinat | Commande samba-tool "équivalente" : |
582 | 59 | Joël Cuissinat | <pre> |
583 | 59 | Joël Cuissinat | samba-tool user create <login> "Eole12345\$" --use-username-as-cn --given-name=Prénom --surname=Nom |
584 | 59 | Joël Cuissinat | </pre> |
585 | 59 | Joël Cuissinat | |
586 | 60 | Joël Cuissinat | Code de génération de la commande pour la librairie Scribe : |
587 | 60 | Joël Cuissinat | <pre> |
588 | 60 | Joël Cuissinat | cmd = ['samba-tool', 'user', 'create', args['login'], args['password'], "--use-username-as-cn", "--given-name={}".format(args['prenom']), "--surname={}".format(args['nom'])] |
589 | 60 | Joël Cuissinat | </pre> |
590 | 60 | Joël Cuissinat | |
591 | 59 | Joël Cuissinat | ATTENTION : L'option : --use-username-as-cn est importante si on veut être sûr que le CN soit <login>. |
592 | 59 | Joël Cuissinat | |
593 | 59 | Joël Cuissinat | Autres options disponibles à étudier : |
594 | 59 | Joël Cuissinat | * --must-change-at-next-login |
595 | 59 | Joël Cuissinat | * --userou='OU=OrgUnit' |
596 | 59 | Joël Cuissinat | * --rfc2307-from-nss & [--nis-domain=samdom --unix-home=/home/User5 --uid-number=10005 --login-shell=/bin/false --gid-number=10000] : compatibilité Unix ? |
597 | 59 | Joël Cuissinat | * --profile-path/--script-path/--home-drive/--home-directory |
598 | 59 | Joël Cuissinat | * --description/--mail-address |
599 | 59 | Joël Cuissinat | |
600 | 59 | Joël Cuissinat | h2. Gestion de l'annuaire AD avec python-ldap |
601 | 59 | Joël Cuissinat | |
602 | 59 | Joël Cuissinat | Objectif du POC : Créer une libraire python permettant de gérer les attributs ldap des utilisateurs |
603 | 59 | Joël Cuissinat | |
604 | 59 | Joël Cuissinat | <pre><code class="python"> |
605 | 59 | Joël Cuissinat | # -*- coding: utf-8 -*- |
606 | 59 | Joël Cuissinat | import ldap |
607 | 59 | Joël Cuissinat | |
608 | 59 | Joël Cuissinat | adbase = "DC=ac-test,DC=fr" |
609 | 59 | Joël Cuissinat | binddn = "CN=Administrator,CN=Users,DC=ac-test,DC=fr" |
610 | 59 | Joël Cuissinat | passwd = "Eole12345!" |
611 | 59 | Joël Cuissinat | |
612 | 59 | Joël Cuissinat | def connect(): |
613 | 59 | Joël Cuissinat | # OPT_REFERRALS=0 is mandatory for AD |
614 | 59 | Joël Cuissinat | ldap.set_option(ldap.OPT_REFERRALS, 0) |
615 | 59 | Joël Cuissinat | ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER) |
616 | 59 | Joël Cuissinat | connexion = ldap.initialize('ldaps://localhost') |
617 | 59 | Joël Cuissinat | connexion.simple_bind_s(binddn, passwd) |
618 | 59 | Joël Cuissinat | return connexion |
619 | 59 | Joël Cuissinat | |
620 | 59 | Joël Cuissinat | |
621 | 59 | Joël Cuissinat | def get_attr(user, attr): |
622 | 59 | Joël Cuissinat | """ |
623 | 59 | Joël Cuissinat | Renvoie la valeur de l'attribut attr |
624 | 59 | Joël Cuissinat | pour l'utilisateur AD user |
625 | 59 | Joël Cuissinat | """ |
626 | 59 | Joël Cuissinat | connexion = connect() |
627 | 59 | Joël Cuissinat | res = connexion.search(adbase, ldap.SCOPE_SUBTREE, |
628 | 59 | Joël Cuissinat | '(samaccountname={0})'.format(user), |
629 | 59 | Joël Cuissinat | [attr]) |
630 | 59 | Joël Cuissinat | try: |
631 | 59 | Joël Cuissinat | return connexion.result(res, 60)[1][0][1][attr][0] |
632 | 59 | Joël Cuissinat | except TypeError: |
633 | 59 | Joël Cuissinat | return |
634 | 59 | Joël Cuissinat | |
635 | 59 | Joël Cuissinat | def set_attr(user, attr, value): |
636 | 59 | Joël Cuissinat | """ |
637 | 59 | Joël Cuissinat | Modifie la valeur de l'attribut attr |
638 | 59 | Joël Cuissinat | pour l'utilisateur AD user |
639 | 59 | Joël Cuissinat | """ |
640 | 59 | Joël Cuissinat | connexion = connect() |
641 | 59 | Joël Cuissinat | if value == '': |
642 | 59 | Joël Cuissinat | value = [] |
643 | 59 | Joël Cuissinat | user_dn = "CN={},CN=Users,{}".format(user, adbase) |
644 | 59 | Joël Cuissinat | data = [((ldap.MOD_REPLACE, attr, value))] |
645 | 59 | Joël Cuissinat | connexion.modify(user_dn, data) |
646 | 59 | Joël Cuissinat | |
647 | 59 | Joël Cuissinat | def delete(user): |
648 | 59 | Joël Cuissinat | """ |
649 | 59 | Joël Cuissinat | suppression d'un utilisateur AD |
650 | 59 | Joël Cuissinat | """ |
651 | 59 | Joël Cuissinat | connexion = connect() |
652 | 59 | Joël Cuissinat | user_dn = "CN={},CN=Users,{}".format(user, adbase) |
653 | 59 | Joël Cuissinat | connexion.delete(user_dn) |
654 | 59 | Joël Cuissinat | </code></pre> |