Univention Bugzilla – Bug 19430
univention-join Robustheit verbessern
Last modified: 2012-12-12 21:10:06 CET
Created attachment 2585 [details] Aufräumarbeiten univention-join hat mehrere Unzulänglichkeiten: - Die per "-dcpwd <dateiname>" übergebenen Datei wird 1:1 auf den Server kopiert und dort anschließend gelöscht. Ggf. vorher auf dem Server existierende Dateien können so verloren gehen! - Locale-abhängige Tests (ifconfig) - fehlender ldapsearch-wrapper bei Suche nach LDAP-NamingContexts - unzureichendes Quoting der Variablen - mangelnde Fehlerbehandlung - unübersichtlicher, gewachsener und ineffizienter Code - fehlerhafte Initialisierung von TYPE Hier der erste Teil der Verbesserung: check_join_status.sh | 45 +++--- debian/changelog | 9 + debian/control | 5 univention-join | 320 ++++++++++++++++++++++---------------------- univention-run-join-scripts | 47 ++---- univention-server-join | 165 ++++++++++------------ 6 files changed, 300 insertions(+), 291 deletions(-)
(In reply to comment #0) > univention-join hat mehrere Unzulänglichkeiten: > - Die per "-dcpwd <dateiname>" übergebenen Datei wird 1:1 auf den Server > kopiert und dort anschließend gelöscht. Ggf. vorher auf dem Server existierende > Dateien können so verloren gehen! Folgendes geht schief, weil univention-join probiert, die Datei mit dem Passwort als "Administrator" nach "/root/pwd" zu kopieren: echo -n GEHEIM >/root/pwd univention-join -dcaccount Administrator -dcpwd /root/pwd Nutzt man statt dessen ein öffentliches Verzeichnis wie /tmp/, funktioniert es: echo -n GEHEIM >/tmp/pwd univention-join -dcaccount Administrator -dcpwd /tmp/pwd
Created attachment 2697 [details] Verbesserungen 2 Löst unter anderem das Problem, wenn $TMPDIR auf einem zu joinenden System gesetzt ist, was dazu führt, daß $(mktemp) dann seine Dateien unterhalb von $TMPDIR erzeugt, was beim kopieren des Passworts auf den Server dann scheitert. Plus ganz viele Quoting-Korrekturen, insbesondere beim Aufruf von univention-ssh.
Sollte im Zuge von Bug #27753 mit behoben werden.
Patch wurde erstmal eingespielt, weil der u.a. das Passwortproblem aus Bug #26516. svn34833, univention-join_5.0.1-1.380.201208141908 Changelog: svn14314 \item Using a password file for joining UCS systems has been fixed (\ucsBug{19430}).
*** Bug 28231 has been marked as a duplicate of this bug. ***
Hier hat sich ein Typo eingeschlichen. univention-server-join übergibt dem udm jetzt die Option "--bindpw" statt "--bindpwd".
(In reply to comment #6) > Hier hat sich ein Typo eingeschlichen. > > univention-server-join übergibt dem udm jetzt die Option "--bindpw" statt > "--bindpwd". Der Bug ist eigentlich eine Folge von der Änderung durch Bug #19978, von daher schließe ich diesen Bug wieder. Genauerer Hintergrund siehe Bug #19978 commet 6
*** Bug 26516 has been marked as a duplicate of this bug. ***
Created attachment 4797 [details] verbesserungen_3 Ein paar weitere Vorschläge.
Vorschläge aus Comment 9 sind als Bug 29275 ausgelagert. Verified: * Unsicherheit in der Handhabung der Remote-Temporärdatei ist behoben * Massive Quoting-Verbesserung zum Schutz gegen Code-Injection OK * Verbesserte Existenzprüfung von obligatorischen Parametern OK * Funktionstest OK * Changelog OK.
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".