49 |
49 |
//Creation automatique du fichier de mots de passe pour les restrictions de connexion
|
50 |
50 |
//sur les depot apt and co
|
51 |
51 |
$fic_htpass = "/tmp/htpasswd-anet";
|
|
52 |
$fic_htpass908 = "/tmp/htpasswd-anet908";
|
|
53 |
$fic_htpass1108 = "/tmp/htpasswd-anet1108";
|
52 |
54 |
//Avec un nom checksum pour ne pas eveiller l'attention
|
53 |
55 |
$dir_htpass_public = "/home/webs/www.abuledu.net/htdocs/epack/export/";
|
54 |
|
$fic_htpass_public = "checksum";
|
55 |
|
$result = system("rm -f " . $fic_htpass . " " . $dir_htpass_public . $fic_htpass_public . "&& touch " . $fic_htpass);
|
|
56 |
$fic_htpass_public = "checksum";
|
|
57 |
$fic_htpass_public908 = "checksum-908";
|
|
58 |
$fic_htpass_public1108 = "checksum-1108";
|
|
59 |
$result = system("rm -f "
|
|
60 |
. " " . $fic_htpass
|
|
61 |
. " " . $fic_htpass908
|
|
62 |
. " " . $fic_htpass1108
|
|
63 |
. " " . $dir_htpass_public . $fic_htpass_public
|
|
64 |
. " " . $dir_htpass_public . $fic_htpass_public908
|
|
65 |
. " " . $dir_htpass_public . $fic_htpass_public1108
|
|
66 |
. "&& touch " . $fic_htpass
|
|
67 |
. "&& touch " . $fic_htpass908
|
|
68 |
. "&& touch " . $fic_htpass1108
|
|
69 |
);
|
|
70 |
|
|
71 |
function nettoyage($s) {
|
|
72 |
$texte = str_replace(" ","",$s);
|
|
73 |
$texte = str_replace("'","",$texte);
|
|
74 |
$texte = str_replace('"',"",$texte);
|
|
75 |
return $texte;
|
|
76 |
}
|
56 |
77 |
|
57 |
|
function make_htpass($login,$pass) {
|
58 |
|
global $fic_htpass;
|
|
78 |
function make_htpass($fic, $login,$pass) {
|
59 |
79 |
$l = $login;
|
60 |
80 |
//debug
|
61 |
81 |
//echo "login: $login / $pass\n";
|
... | ... | |
68 |
88 |
$login = trim(str_replace(".dip.abuledu.net","",$login));
|
69 |
89 |
|
70 |
90 |
//Et le login en MAG et MIN because a bug ou un truc a la con qqpart dans la chaine
|
71 |
|
$result = shell_exec("htpasswd -mb " . $fic_htpass . " " . trim(strtolower($login)) . " " . trim($pass) . " 2>&1");
|
72 |
|
$result = shell_exec("htpasswd -mb " . $fic_htpass . " " . trim(strtoupper($login)) . " " . trim($pass) . " 2>&1");
|
|
91 |
$result = shell_exec("htpasswd -mb " . $fic . " " . trim(strtolower($login)) . " " . trim(nettoyage($pass)) . " 2>&1");
|
|
92 |
$result = shell_exec("htpasswd -mb " . $fic . " " . trim(strtoupper($login)) . " " . trim(nettoyage($pass)) . " 2>&1");
|
73 |
93 |
}
|
74 |
94 |
|
75 |
|
|
76 |
95 |
//Les serveurs avant 2009 ne sont pas des epacks et leur mot de passe est stocke en crypte
|
77 |
96 |
$query = "SELECT e.password as gnudip_pass,os_license_number as dns_alias0,os_license_id as dns_alias1 FROM glpi_computers AS c
|
78 |
97 |
LEFT JOIN glpi_plugin_anet_epacks AS e ON e.FK_serveur=c.ID
|
... | ... | |
88 |
107 |
// dns a l autre bout ...
|
89 |
108 |
// $text .= implode(";",$row) . "\n";
|
90 |
109 |
$text .= trim($row[0]) . ";" . trim($row[1]) . ";" . trim($row[2]) . ";\n";
|
91 |
|
make_htpass($row[1],$row[0]);
|
|
110 |
make_htpass($fic_htpass, $row[1],$row[0]);
|
92 |
111 |
}
|
93 |
112 |
|
94 |
113 |
//les serveurs post ENR sont des epacks reels et leur mot de passe n'est pas crypte
|
... | ... | |
108 |
127 |
for ( $i = 0; $i < $nb; $i++) {
|
109 |
128 |
$row = $result2->fetchrow();
|
110 |
129 |
$text .= implode(";",$row) . "\n";
|
111 |
|
make_htpass($row[1],$row[0]);
|
|
130 |
make_htpass($fic_htpass, $row[1],$row[0]);
|
112 |
131 |
}
|
113 |
132 |
|
114 |
133 |
//Et ensuite les comptes utilisateurs pour les espaces limites uniquement
|
... | ... | |
118 |
137 |
WHERE gup.FK_profiles = '5' OR gup.FK_profiles = '7'
|
119 |
138 |
GROUP BY name";
|
120 |
139 |
if ( DB::isError($result3 = $dbglpi->query($query3)) ) {
|
121 |
|
die ("***\n$query2\n" . DB::errorMessage($result3) . "\n***\n\n");
|
|
140 |
die ("***\n$query3\n" . DB::errorMessage($result3) . "\n***\n\n");
|
122 |
141 |
}
|
123 |
142 |
|
124 |
143 |
$nb = $result3->NumRows();
|
... | ... | |
127 |
146 |
//le nom en minuscule, sans accents et sans espaces
|
128 |
147 |
$nom = anti_speciaux($row[1],2);
|
129 |
148 |
$login = trim($row[0]);
|
130 |
|
make_htpass($login,$nom);
|
|
149 |
make_htpass($fic_htpass, $login,$nom);
|
|
150 |
}
|
|
151 |
|
|
152 |
//Maintenant, les personnes qui ont suivies la formation 9.08 clé "493" dans la table glpi_groups
|
|
153 |
$query4 = "SELECT name, realname FROM glpi_users as gu
|
|
154 |
LEFT JOIN glpi_users_groups as gug ON gug.FK_users=gu.ID
|
|
155 |
WHERE gug.FK_groups = '493' GROUP BY name";
|
|
156 |
if ( DB::isError($result4 = $dbglpi->query($query4)) ) {
|
|
157 |
die ("***\n$query4\n" . DB::errorMessage($result4) . "\n***\n\n");
|
|
158 |
}
|
|
159 |
|
|
160 |
$nb = $result4->NumRows();
|
|
161 |
for ( $i = 0; $i < $nb; $i++) {
|
|
162 |
$row = $result4->fetchrow();
|
|
163 |
//le nom en minuscule, sans accents et sans espaces
|
|
164 |
$nom = anti_speciaux($row[1],2);
|
|
165 |
$login = trim($row[0]);
|
|
166 |
make_htpass($fic_htpass908, $login, $nom);
|
|
167 |
//echo "$fic_htpass908 ... $login : $nom\n";
|
|
168 |
}
|
|
169 |
|
|
170 |
//Maintenant, les personnes qui ont suivies la formation 11.08 clé "494" dans la table glpi_groups
|
|
171 |
$query5 = "SELECT name, realname FROM glpi_users as gu
|
|
172 |
LEFT JOIN glpi_users_groups as gug ON gug.FK_users=gu.ID
|
|
173 |
WHERE gug.FK_groups = '494' GROUP BY name";
|
|
174 |
if ( DB::isError($result5 = $dbglpi->query($query5)) ) {
|
|
175 |
die ("***\n$query5\n" . DB::errorMessage($result5) . "\n***\n\n");
|
|
176 |
}
|
|
177 |
|
|
178 |
$nb = $result5->NumRows();
|
|
179 |
for ( $i = 0; $i < $nb; $i++) {
|
|
180 |
$row = $result5->fetchrow();
|
|
181 |
//le nom en minuscule, sans accents et sans espaces
|
|
182 |
$nom = anti_speciaux($row[1],2);
|
|
183 |
$login = trim($row[0]);
|
|
184 |
//echo "$fic_htpass1108 ... $login : $nom\n";
|
|
185 |
make_htpass($fic_htpass1108, $login, $nom);
|
131 |
186 |
}
|
132 |
187 |
|
|
188 |
|
133 |
189 |
/*
|
134 |
190 |
*
|
135 |
191 |
* EXPEDITION DES DONNEES POUR LE SERVEUR GNUDIP
|
... | ... | |
148 |
204 |
|
149 |
205 |
$command = 'echo "'.$text.'" | '.$gpg.' -a --always-trust --batch --no-secmem-warning -s -e -u "'.$user_from.'" -r "'.$user_dyndns.'"';
|
150 |
206 |
$result = exec($command, $encrypted, $errorcode);
|
|
207 |
//print $command . "\n";
|
|
208 |
|
151 |
209 |
$message = implode("\n", $encrypted);
|
152 |
210 |
/*
|
153 |
211 |
if( ereg("-----BEGIN PGP MESSAGE-----.*-----END PGP MESSAGE-----",$message) ) {
|
... | ... | |
167 |
225 |
//Ensuite on GPG Crypte le fichier de htpasswd avec la meme cle
|
168 |
226 |
$encrypted = "";
|
169 |
227 |
$message = "";
|
170 |
|
$command = 'rm -f "' . $dir_htpass_public . $fic_htpass_public . '" && cat "' . $fic_htpass . '" | ' . $gpg . ' --always-trust --batch --no-secmem-warning -s -e -u "' . $user_from . '" -r "' . $user_apt . '" > ' . $dir_htpass_public . $fic_htpass_public;
|
171 |
|
//print $command;
|
|
228 |
$command = 'rm -f "' . $dir_htpass_public . $fic_htpass_public . '" && cat "' . $fic_htpass . '" | ' . $gpg . ' --always-trust --batch --no-secmem-warning -s -e -u "' . $user_from . '" -r "' . $user_apt . '" > ' . $dir_htpass_public . $fic_htpass_public;
|
|
229 |
$result = exec($command, $encrypted, $errorcode);
|
|
230 |
//print $command . "\n";
|
|
231 |
|
|
232 |
$encrypted = "";
|
|
233 |
$message = "";
|
|
234 |
$command = 'rm -f "' . $dir_htpass_public . $fic_htpass_public908 . '" && cat "' . $fic_htpass908 . '" | ' . $gpg . ' --always-trust --batch --no-secmem-warning -s -e -u "' . $user_from . '" -r "' . $user_apt . '" > ' . $dir_htpass_public . $fic_htpass_public908;
|
|
235 |
$result = exec($command, $encrypted, $errorcode);
|
|
236 |
//print $command . "\n";
|
|
237 |
|
|
238 |
$encrypted = "";
|
|
239 |
$message = "";
|
|
240 |
$command = 'rm -f "' . $dir_htpass_public . $fic_htpass_public1108 . '" && cat "' . $fic_htpass1108 . '" | ' . $gpg . ' --always-trust --batch --no-secmem-warning -s -e -u "' . $user_from . '" -r "' . $user_apt . '" > ' . $dir_htpass_public . $fic_htpass_public1108;
|
172 |
241 |
$result = exec($command, $encrypted, $errorcode);
|
|
242 |
//print $command . "\n";
|
173 |
243 |
|
174 |
244 |
//le fichier de checksum que les serveurs vont downloader pour verifier si y a une mise a jour
|
175 |
245 |
$result = exec("cd " . $dir_htpass_public . " && md5sum " . $fic_htpass_public . " > " . $fic_htpass_public . ".md5");
|