]> Frank Brehm's Git Trees - pixelpark/pp-admin-tools.git/commitdiff
Translations
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 22 Sep 2022 12:58:28 +0000 (14:58 +0200)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 22 Sep 2022 12:58:28 +0000 (14:58 +0200)
locale/de_DE/LC_MESSAGES/pp_admintools.po
locale/en_US/LC_MESSAGES/pp_admintools.po
locale/pp_admintools.pot

index 7657b8f0c5a06fb630951a53cc0fd76bebd5d377..7b581498cba439b1a2e375a496be3f1d74334095 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-09-19 14:05+0200\n"
-"PO-Revision-Date: 2022-09-19 14:15+0200\n"
+"POT-Creation-Date: 2022-09-22 14:24+0200\n"
+"PO-Revision-Date: 2022-09-22 14:30+0200\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: de_DE\n"
 "Language-Team: de_DE <solution@pixelpark.com>\n"
@@ -18,44 +18,58 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.10.3\n"
 
-#: lib/pp_admintools/app/__init__.py:57
+#: lib/pp_admintools/app/__init__.py:58
 msgid "Timeout on answering on the console."
 msgstr "Zeitüberschreitung beim Antworten an der Konsole."
 
-#: lib/pp_admintools/app/__init__.py:76
+#: lib/pp_admintools/app/__init__.py:77
 msgid "a timeout must be greater than zero and less or equal to {}."
 msgstr "Ein iTimeout muss größer als Null und kleiner oder gleich {} sein."
 
-#: lib/pp_admintools/app/__init__.py:81
+#: lib/pp_admintools/app/__init__.py:82
 msgid "Wrong timeout {!r}:"
 msgstr "Ungültiger Timeout {!r}:"
 
-#: lib/pp_admintools/app/__init__.py:125 lib/pp_admintools/app/remove_ldap_user.py:240
+#: lib/pp_admintools/app/__init__.py:126 lib/pp_admintools/app/remove_ldap_user.py:278
 msgid "yes"
 msgstr "ja"
 
-#: lib/pp_admintools/app/__init__.py:132
+#: lib/pp_admintools/app/__init__.py:133
 msgid "no"
 msgstr "nein"
 
-#: lib/pp_admintools/app/__init__.py:163
+#: lib/pp_admintools/app/__init__.py:164
 msgid "Wrong prompt timeout {v!r}, must be greater or equal to Null and less or equal to {max}."
 msgstr ""
 "Falscher Eingabe-Timeout {v!r}, er muss größer oder gleich Null sowie kleiner oder gleich {max} "
 "sein."
 
-#: lib/pp_admintools/app/__init__.py:243
-msgid "Yes/No"
-msgstr "Ja/Nein"
+#: lib/pp_admintools/app/__init__.py:249
+msgid "Password:"
+msgstr "Passwort:"
+
+#: lib/pp_admintools/app/__init__.py:252 lib/pp_admintools/app/set_ldap_password.py:230
+#: lib/pp_admintools/app/set_ldap_password.py:239
+msgid "Repeat password:"
+msgstr "Passwort-Wiederholung:"
+
+#: lib/pp_admintools/app/__init__.py:266
+msgid "The entered passwords does not match."
+msgstr "Die angegebenen Passwörter stimmen nicht überein."
 
-#: lib/pp_admintools/app/__init__.py:248
+#: lib/pp_admintools/app/__init__.py:279 lib/pp_admintools/app/__init__.py:345
 msgid "Interrupted on demand."
 msgstr "Abbruch auf Verlangen."
 
-#: lib/pp_admintools/app/__init__.py:281 lib/pp_admintools/app/__init__.py:286
+#: lib/pp_admintools/app/__init__.py:304 lib/pp_admintools/app/__init__.py:309
+#: lib/pp_admintools/app/__init__.py:378 lib/pp_admintools/app/__init__.py:383
 msgid "Got a {}:"
 msgstr "Habe ein {} erhalten:"
 
+#: lib/pp_admintools/app/__init__.py:340
+msgid "Yes/No"
+msgstr "Ja/Nein"
+
 #: lib/pp_admintools/app/dns_deploy_zones.py:121
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr "Generierung der BIND9-Konfigurationsdatei für Slave-Zonen."
@@ -154,10 +168,10 @@ msgid "Executing: {}"
 msgstr "Führe aus: {}"
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:447 lib/pp_admintools/app/dns_deploy_zones.py:801
-#: lib/pp_admintools/app/ldap.py:691 lib/pp_admintools/app/ldap.py:744
-#: lib/pp_admintools/app/ldap.py:797 lib/pp_admintools/app/ldap.py:1026
-#: lib/pp_admintools/app/ldap.py:1060 lib/pp_admintools/app/ldap.py:1094
-#: lib/pp_admintools/app/ldap.py:1128
+#: lib/pp_admintools/app/ldap.py:760 lib/pp_admintools/app/ldap.py:813
+#: lib/pp_admintools/app/ldap.py:866 lib/pp_admintools/app/ldap.py:1095
+#: lib/pp_admintools/app/ldap.py:1129 lib/pp_admintools/app/ldap.py:1163
+#: lib/pp_admintools/app/ldap.py:1197
 msgid "Result:"
 msgstr "Ergebnis:"
 
@@ -321,27 +335,30 @@ msgstr "Neu starten {} …"
 msgid "Reloading {} ..."
 msgstr "Reload {} …"
 
-#: lib/pp_admintools/app/ldap.py:106 lib/pp_admintools/app/ldap.py:209
+#: lib/pp_admintools/app/ldap.py:108 lib/pp_admintools/app/ldap.py:211
 msgid "The path {!r} must be an absolute path."
 msgstr "Der Pfad {!r} muss ein absoluter Pfad sein."
 
-#: lib/pp_admintools/app/ldap.py:112 lib/pp_admintools/app/ldap.py:213
+#: lib/pp_admintools/app/ldap.py:114 lib/pp_admintools/app/ldap.py:215
+#: lib/pp_admintools/app/ldap.py:1211
 msgid "The file {!r} does not exists."
 msgstr "Die Datei {!r} existiert nicht."
 
-#: lib/pp_admintools/app/ldap.py:116 lib/pp_admintools/app/ldap.py:217
+#: lib/pp_admintools/app/ldap.py:118 lib/pp_admintools/app/ldap.py:219
+#: lib/pp_admintools/app/ldap.py:1216
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr "Der angegebene Pfad {!r} existiert, ist aber keine reguläre Datei."
 
-#: lib/pp_admintools/app/ldap.py:120 lib/pp_admintools/app/ldap.py:221
+#: lib/pp_admintools/app/ldap.py:122 lib/pp_admintools/app/ldap.py:223
+#: lib/pp_admintools/app/ldap.py:1221
 msgid "The given file {!r} is not readable."
 msgstr "Die angegebene Datei {} ist nicht lesbar."
 
-#: lib/pp_admintools/app/ldap.py:141
+#: lib/pp_admintools/app/ldap.py:143
 msgid "a port number must be greater than zero and less or equal to {}."
 msgstr "ein Port muss größer als Null und kleiner oder gleich {} sein."
 
-#: lib/pp_admintools/app/ldap.py:146
+#: lib/pp_admintools/app/ldap.py:148
 msgid "Wrong port number {!r}:"
 msgstr "Ungültige Portnummer {!r}."
 
@@ -357,7 +374,7 @@ msgstr "Optionen für die Vorgabe-LDAP-Verbindung"
 msgid "Options fo LDAP connections"
 msgstr "Optionen für die LDAP-Verbindungen"
 
-#: lib/pp_admintools/app/ldap.py:267 lib/pp_admintools/app/remove_ldap_user.py:240
+#: lib/pp_admintools/app/ldap.py:267 lib/pp_admintools/app/remove_ldap_user.py:278
 msgid "No"
 msgstr "Nein"
 
@@ -394,7 +411,9 @@ msgstr "Die Basis-DN, die als Ausgangspunt bei LDAP-Suchen verwendet werden soll
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr "Die Bind-DN, die zur Verbindung mit dem LDAP-Server verwendet werden soll. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:311
+#: lib/pp_admintools/app/ldap.py:311 lib/pp_admintools/app/set_ldap_password.py:124
+#: lib/pp_admintools/app/set_ldap_password.py:125 lib/pp_admintools/app/set_ldap_password.py:142
+#: lib/pp_admintools/app/set_ldap_password.py:145
 msgid "PASSWORD"
 msgstr "PASSWORT"
 
@@ -410,7 +429,8 @@ msgstr ""
 "Nachfrage nach dem Passwort für eine einfache LDAP-Authentifizierung. Dies wird anstelle der "
 "Angabe des Passwortes an der Kommandozeile verwendet."
 
-#: lib/pp_admintools/app/ldap.py:323
+#: lib/pp_admintools/app/ldap.py:323 lib/pp_admintools/app/set_ldap_password.py:136
+#: lib/pp_admintools/app/set_ldap_password.py:138
 msgid "PASSWORD_FILE"
 msgstr "PASSWORT_DATEI"
 
@@ -452,218 +472,230 @@ msgstr "SEKUNDEN"
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr "Der Timeout in Sekunden für alle LDAP-Operationen. Vorgabe: {}."
 
-#: lib/pp_admintools/app/ldap.py:392
+#: lib/pp_admintools/app/ldap.py:394
 msgid "Checking given instances."
 msgstr "Überprüfe die übergebenen Instanzen."
 
-#: lib/pp_admintools/app/ldap.py:396
+#: lib/pp_admintools/app/ldap.py:398
 msgid "Given insts:"
 msgstr "Übergebene Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:433
+#: lib/pp_admintools/app/ldap.py:449
 msgid "Configured LDAP instances:"
 msgstr "Konfigurierte LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:447
+#: lib/pp_admintools/app/ldap.py:466
 msgid "Verifying given instances ..."
 msgstr "Überprüfene Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:465
+#: lib/pp_admintools/app/ldap.py:477
+msgid "Used filter:"
+msgstr "Verwendeter Filter:"
+
+#: lib/pp_admintools/app/ldap.py:507 lib/pp_admintools/app/remove_ldap_user.py:179
 msgid "LDAP instance {!r} not found in configuration."
 msgstr "Die LDAP-Instanz {!r} wurde nicht in der Konfiguration gefunden."
 
-#: lib/pp_admintools/app/ldap.py:473
+#: lib/pp_admintools/app/ldap.py:515
 msgid "LDAP instances to use:"
 msgstr "Verwendete LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:522
+#: lib/pp_admintools/app/ldap.py:564
 msgid "Preparations ..."
 msgstr "Vorbereitungen …"
 
-#: lib/pp_admintools/app/ldap.py:525
+#: lib/pp_admintools/app/ldap.py:567
 msgid "Open all necessary LDAP connections ..."
 msgstr "Öffne alle notwendigen LDAP-Verbindungen …"
 
-#: lib/pp_admintools/app/ldap.py:536
-msgid "Connecting to LDAP server {} ..."
-msgstr "Verbinde mit LDAP-Server {} …"
+#: lib/pp_admintools/app/ldap.py:584
+msgid "Info about LDAP server {}:"
+msgstr "Informationen zu LDAP-Server {}:"
+
+#: lib/pp_admintools/app/ldap.py:594
+msgid "Trying to get LDAP server object for {} ..."
+msgstr "Versuche ein LDAP-Server-Objekt für {} zu bekommen …"
 
-#: lib/pp_admintools/app/ldap.py:551
+#: lib/pp_admintools/app/ldap.py:610
 msgid "Connect options to server {!r}:"
 msgstr "Verbindungs-Optionen zu Server {!r}:"
 
-#: lib/pp_admintools/app/ldap.py:559
+#: lib/pp_admintools/app/ldap.py:617
 msgid "LDAP server {s}: {re}"
 msgstr "LDAP-Server {s}: {re}"
 
-#: lib/pp_admintools/app/ldap.py:567
-msgid "Info about LDAP server {}:"
-msgstr "Informationen zu LDAP-Server {}:"
+#: lib/pp_admintools/app/ldap.py:631
+msgid "Connecting to LDAP server {url} as {dn!r} ..."
+msgstr "Verbinde mit LDAP-Server {url} als {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:574
+#: lib/pp_admintools/app/ldap.py:643
 msgid "Finishing ..."
 msgstr "Beende …"
 
-#: lib/pp_admintools/app/ldap.py:583
+#: lib/pp_admintools/app/ldap.py:652
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Trenne Verbindung zu allen verbleibenden LDAP-Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:596
+#: lib/pp_admintools/app/ldap.py:665 lib/pp_admintools/app/set_ldap_password.py:273
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Trenne Bindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:603
+#: lib/pp_admintools/app/ldap.py:672 lib/pp_admintools/app/set_ldap_password.py:280
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Trenne Verbindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:612
+#: lib/pp_admintools/app/ldap.py:681
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr "Versuche den DN des Nutzer {user!r} auf der LDAP-Instanz {inst} zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:617
+#: lib/pp_admintools/app/ldap.py:686
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr "Versuche den DN des Nutzer {u!r} als Mailadresse zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:624
+#: lib/pp_admintools/app/ldap.py:693
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr "Versuche den DN des Nutzer {u!r} als LDAP DN zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:631
+#: lib/pp_admintools/app/ldap.py:700
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr "Versuche den DN des Nutzer {u!r} als UID (POSIX Benutzername) zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:640 lib/pp_admintools/app/remove_ldap_user.py:260
+#: lib/pp_admintools/app/ldap.py:709 lib/pp_admintools/app/remove_ldap_user.py:298
 msgid "Empty user given."
 msgstr "Leere Nutzername übergeben."
 
-#: lib/pp_admintools/app/ldap.py:643
+#: lib/pp_admintools/app/ldap.py:712
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr "Versuche den DN des Nutzer {u!r} als CN ({c}) zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:673 lib/pp_admintools/app/ldap.py:726
-#: lib/pp_admintools/app/ldap.py:779 lib/pp_admintools/app/ldap.py:1011
-#: lib/pp_admintools/app/ldap.py:1045 lib/pp_admintools/app/ldap.py:1079
-#: lib/pp_admintools/app/ldap.py:1113
+#: lib/pp_admintools/app/ldap.py:742 lib/pp_admintools/app/ldap.py:795
+#: lib/pp_admintools/app/ldap.py:848 lib/pp_admintools/app/ldap.py:1080
+#: lib/pp_admintools/app/ldap.py:1114 lib/pp_admintools/app/ldap.py:1148
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr "Suche in {uri}/{bdn} mit dem Filter: {fltr}"
 
-#: lib/pp_admintools/app/ldap.py:684
+#: lib/pp_admintools/app/ldap.py:753
 msgid "Result of searching for mail address {m!r}:"
 msgstr "Ergebnis der Suche nach der Mailadresse {m!r}:"
 
-#: lib/pp_admintools/app/ldap.py:688 lib/pp_admintools/app/ldap.py:741
-#: lib/pp_admintools/app/ldap.py:794 lib/pp_admintools/app/ldap.py:882
-#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1057
-#: lib/pp_admintools/app/ldap.py:1091 lib/pp_admintools/app/ldap.py:1125
+#: lib/pp_admintools/app/ldap.py:757 lib/pp_admintools/app/ldap.py:810
+#: lib/pp_admintools/app/ldap.py:863 lib/pp_admintools/app/ldap.py:951
+#: lib/pp_admintools/app/ldap.py:1092 lib/pp_admintools/app/ldap.py:1126
+#: lib/pp_admintools/app/ldap.py:1160 lib/pp_admintools/app/ldap.py:1194
 msgid "Got a response entry:"
 msgstr "Erhaltener Antwort-Eintrag:"
 
-#: lib/pp_admintools/app/ldap.py:695
+#: lib/pp_admintools/app/ldap.py:764
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit der Mailadresse {m!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:737
+#: lib/pp_admintools/app/ldap.py:806
 msgid "Result of searching for uid {u!r}:"
 msgstr "Ergebnis der Suche nach UID {u!r}:"
 
-#: lib/pp_admintools/app/ldap.py:748
+#: lib/pp_admintools/app/ldap.py:817
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit der UID {u!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:790
+#: lib/pp_admintools/app/ldap.py:859
 msgid "Result of searching for CN {cn!r}:"
 msgstr "Ergebnis der Suche nach CN {cn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:801
+#: lib/pp_admintools/app/ldap.py:870
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit dem CN {cn!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:818
+#: lib/pp_admintools/app/ldap.py:887
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr "Ein Nutzer mit dem DN {dn!r} wurde nicht in {uri} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:836
+#: lib/pp_admintools/app/ldap.py:905
 msgid "ObjectClasses of {dn!r}:"
 msgstr "ObjectClasses von {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:846
+#: lib/pp_admintools/app/ldap.py:915
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr "Der Eintrag {dn!r} in {uri} scheint kein Nutzerkonto zu sein."
 
-#: lib/pp_admintools/app/ldap.py:868
+#: lib/pp_admintools/app/ldap.py:937
 msgid "Searching DN {dn!r} in {uri}."
 msgstr "Suche DN {dn!r} in {uri}."
 
-#: lib/pp_admintools/app/ldap.py:878
+#: lib/pp_admintools/app/ldap.py:947
 msgid "Result of searching for DN {dn!r}:"
 msgstr "Ergebnis der Suche nach dem DN {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:886
+#: lib/pp_admintools/app/ldap.py:955
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr "Ein Eintrag bit dem DN {dn!r} wurde nicht in {uri} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:926
+#: lib/pp_admintools/app/ldap.py:995
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr "Wende Änderungen in {uri} an DN {dn!r} an:"
 
-#: lib/pp_admintools/app/ldap.py:931
+#: lib/pp_admintools/app/ldap.py:1000
 msgid "Simulation mode - changes are not applied."
 msgstr "Simulationsmodus - hier wird jetzt nichts geändert."
 
-#: lib/pp_admintools/app/ldap.py:937
+#: lib/pp_admintools/app/ldap.py:1006
 msgid "Modification NOT successfull - {c}: {e}"
 msgstr "Die Änderung war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:938 lib/pp_admintools/app/remove_ldap_user.py:387
-#: lib/pp_admintools/app/remove_ldap_user.py:414 lib/pp_admintools/app/remove_ldap_user.py:441
-#: lib/pp_admintools/app/remove_ldap_user.py:472 lib/pp_admintools/app/remove_ldap_user.py:503
+#: lib/pp_admintools/app/ldap.py:1007 lib/pp_admintools/app/remove_ldap_user.py:425
+#: lib/pp_admintools/app/remove_ldap_user.py:452 lib/pp_admintools/app/remove_ldap_user.py:479
+#: lib/pp_admintools/app/remove_ldap_user.py:510 lib/pp_admintools/app/remove_ldap_user.py:541
 msgid "Changes:"
 msgstr "Änderungen:"
 
-#: lib/pp_admintools/app/ldap.py:950
+#: lib/pp_admintools/app/ldap.py:1019
 msgid "Modification status: {!r}."
 msgstr "Änderungsstatus: {!r}."
 
-#: lib/pp_admintools/app/ldap.py:952
+#: lib/pp_admintools/app/ldap.py:1021
 msgid "Result of modifying:"
 msgstr "Ergebnis der Änderung:"
 
-#: lib/pp_admintools/app/ldap.py:955
+#: lib/pp_admintools/app/ldap.py:1024
 msgid "Modification NOT successful: {desc} - {msg}"
 msgstr "Die Änderung war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:959
+#: lib/pp_admintools/app/ldap.py:1028
 msgid "Modification successful."
 msgstr "Die Änderung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:968
+#: lib/pp_admintools/app/ldap.py:1037
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Lösche LDAP-Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:973
+#: lib/pp_admintools/app/ldap.py:1042
 msgid "Simulation mode - deletion will not be executed."
 msgstr "Simulationsmodus - hier wird jetzt nichts gelöscht."
 
-#: lib/pp_admintools/app/ldap.py:979
+#: lib/pp_admintools/app/ldap.py:1048
 msgid "Deletion NOT successfull - {c}: {e}"
 msgstr "Die Löschung war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:983
+#: lib/pp_admintools/app/ldap.py:1052
 msgid "Deletion status: {!r}."
 msgstr "Löschstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:985
+#: lib/pp_admintools/app/ldap.py:1054
 msgid "Result of deletion:"
 msgstr "Ergebnis der Löschung:"
 
-#: lib/pp_admintools/app/ldap.py:988
+#: lib/pp_admintools/app/ldap.py:1057
 msgid "Deletion NOT successful: {desc} - {msg}"
 msgstr "Die Löschung war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:992
+#: lib/pp_admintools/app/ldap.py:1061
 msgid "Deletion successful."
 msgstr "Die Löschung war erfolgreich."
 
+#: lib/pp_admintools/app/ldap.py:1208
+msgid "Reading password file {!r} ..."
+msgstr "Lese Passwortdatei {!r} …"
+
 #: lib/pp_admintools/app/mail.py:103
 msgid "Got invalid SMTP port number {!r}."
 msgstr "Ungültige SMTP-Port-Nummer {!r} erhalten."
@@ -891,7 +923,8 @@ msgstr "Deaktivieren der Nutzer anstatt Löschung."
 msgid "Removing the user from LDAP."
 msgstr "Löschen der übergebenen Nutzer im LDAP."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:136
+#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:162
+#: lib/pp_admintools/app/set_ldap_password.py:165
 msgid "USER"
 msgstr "NUTZER"
 
@@ -906,148 +939,257 @@ msgstr ""
 "angegeben werden. Bitte beachten, dass sich letzterer bei den verschiedenen LDAP-Instanzen "
 "unterscheiden kann."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:154
+#: lib/pp_admintools/app/remove_ldap_user.py:159
 msgid "No users to remove given."
 msgstr "Kein Nutzername zum Löschen angegeben."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:171
+#: lib/pp_admintools/app/remove_ldap_user.py:172
+msgid "Checking given instances for admin and read/write access."
+msgstr "Überprüfe die gegebenen Instanzen nach Admin- und Schreib-/Lesezugriffsrechten."
+
+#: lib/pp_admintools/app/remove_ldap_user.py:187
+msgid "LDAP instance {!r} has only readonly access."
+msgstr "Die LDAP-Instanz {!r} besitzt nur Lesezugriffsrechte."
+
+#: lib/pp_admintools/app/remove_ldap_user.py:192
+msgid "No admin access to LDAP instance {!r}."
+msgstr "Keine Admin-Zugriffsrechte bei LDAP-Instanz {!r}."
+
+#: lib/pp_admintools/app/remove_ldap_user.py:209
 msgid "All given users were not found in any LDAP instance."
 msgstr "Alle übergebenen Nutzer wurden in keiner der LDAP-Instanzen gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:176
+#: lib/pp_admintools/app/remove_ldap_user.py:214
 msgid "Evaluated DNs to remove:"
 msgstr "Zum Löschen ermittelte DNs:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:185
+#: lib/pp_admintools/app/remove_ldap_user.py:223
 msgid "Start disabling user entries in:"
 msgstr "Beginne Deaktivierung der Nutzereinträge in:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:187
+#: lib/pp_admintools/app/remove_ldap_user.py:225
 msgid "Start removing user entries in:"
 msgstr "Beginne Löschung der Nutzereinträge in:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:191
+#: lib/pp_admintools/app/remove_ldap_user.py:229
 msgid "Start disabling user entries ..."
 msgstr "Beginne Deaktivierung der Nutzereinträge …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:193
+#: lib/pp_admintools/app/remove_ldap_user.py:231
 msgid "Start removing user entries ..."
 msgstr "Beginne Löschung der Nutzereinträge …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:208
+#: lib/pp_admintools/app/remove_ldap_user.py:246
 msgid "Do you really want to deactivate the following users?"
 msgstr "Möchten Sie die folgenden Nutzer wirklich deaktivieren?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:210
+#: lib/pp_admintools/app/remove_ldap_user.py:248
 msgid "Do you really want to remove the following users?"
 msgstr "Möchten Sie die folgenden Nutzer wirklich löschen?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:236
+#: lib/pp_admintools/app/remove_ldap_user.py:274
 msgid "Deactivate [{yes}/{no}]?"
 msgstr "Deaktivieren [{yes}/{no}]?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:238
+#: lib/pp_admintools/app/remove_ldap_user.py:276
 msgid "Remove [{yes}/{no}]?"
 msgstr "Löschen [{yes}/{no}]?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:245
+#: lib/pp_admintools/app/remove_ldap_user.py:283
 msgid "Abort deactivating by {cls}: {e}"
 msgstr "Abbruch der Deaktivierung durch {cls}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:247
+#: lib/pp_admintools/app/remove_ldap_user.py:285
 msgid "Abort removing by {cls}: {e}"
 msgstr "Abbruch des Löschens durch {cls}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:256
+#: lib/pp_admintools/app/remove_ldap_user.py:294
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr "Ermitteln der DNs des Nutzers {!r} zum Löschen …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:270
+#: lib/pp_admintools/app/remove_ldap_user.py:308 lib/pp_admintools/app/set_ldap_password.py:294
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr "Habe DN {dn!r} für den Nutzer {user!r} in der LDAP-Instanz {inst} ermittelt."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:277
+#: lib/pp_admintools/app/remove_ldap_user.py:315 lib/pp_admintools/app/set_ldap_password.py:299
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr "Fand {nr} Einträge für den Nutzer {u!r} in der LDAP-Instanz {i}."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:289
+#: lib/pp_admintools/app/remove_ldap_user.py:327 lib/pp_admintools/app/set_ldap_password.py:313
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr "Der Nutzer {user!r} wurde nicht in der LDAP-Instanz {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:298
+#: lib/pp_admintools/app/remove_ldap_user.py:336
 msgid "Deactivating all given users from {} ..."
 msgstr "Deaktivieren aller übergebenen Nutzer in {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:300
+#: lib/pp_admintools/app/remove_ldap_user.py:338
 msgid "Removing all given users from {} ..."
 msgstr "Lösche alle übergebenen Nutzer in {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:315
+#: lib/pp_admintools/app/remove_ldap_user.py:353
 msgid "Deactivating user {dn!r} from {inst} ..."
 msgstr "Deaktivieren von Nutzer {dn!r} in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/remove_ldap_user.py:356
 msgid "Removing user {dn!r} from {inst} ..."
 msgstr "Lösche Nutzer {dn!r} in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:324
+#: lib/pp_admintools/app/remove_ldap_user.py:362
 msgid "Attributes of {!r}:"
 msgstr "Attribute von {!r}:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:345
+#: lib/pp_admintools/app/remove_ldap_user.py:383
 msgid "{c} on removing user {dn!r}: {e}"
 msgstr "{c} beim Löschen des Nutzers {dn!r}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:351
+#: lib/pp_admintools/app/remove_ldap_user.py:389
 msgid "User {dn!r} successful deactivated on {inst}."
 msgstr "Der Nutzer {dn!r} wurde erfolgreich auf {inst} deaktiviert."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:354
+#: lib/pp_admintools/app/remove_ldap_user.py:392
 msgid "User {dn!r} successful removed from {inst}."
 msgstr "Der Nutzer {dn!r} wurde erfolgreich von {inst} gelöscht."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:380
+#: lib/pp_admintools/app/remove_ldap_user.py:418
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr "Aktualisiere die Nutzerinformationenn für {dn!r} in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:385
+#: lib/pp_admintools/app/remove_ldap_user.py:423
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr "{c} beim Deaktivieren des Nutzers {dn!r}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:401
+#: lib/pp_admintools/app/remove_ldap_user.py:439
 msgid "Did not found any group memberships of {dn!r} in {inst}."
 msgstr "Keine Gruppenmitgliedschaften von {dn!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:407 lib/pp_admintools/app/remove_ldap_user.py:434
-#: lib/pp_admintools/app/remove_ldap_user.py:465 lib/pp_admintools/app/remove_ldap_user.py:496
+#: lib/pp_admintools/app/remove_ldap_user.py:445 lib/pp_admintools/app/remove_ldap_user.py:472
+#: lib/pp_admintools/app/remove_ldap_user.py:503 lib/pp_admintools/app/remove_ldap_user.py:534
 msgid "Removing user {u!r} from group {g!r} ..."
 msgstr "Lösche Nutzer {u!r} aus der Gruppe {g!r} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:412 lib/pp_admintools/app/remove_ldap_user.py:439
-#: lib/pp_admintools/app/remove_ldap_user.py:470 lib/pp_admintools/app/remove_ldap_user.py:501
+#: lib/pp_admintools/app/remove_ldap_user.py:450 lib/pp_admintools/app/remove_ldap_user.py:477
+#: lib/pp_admintools/app/remove_ldap_user.py:508 lib/pp_admintools/app/remove_ldap_user.py:539
 msgid "{c} on removing user {dn!r} from group {g!r}: {e}"
 msgstr "{c} beim Löschen des Nutzers {dn!r} von der Gruppe {g!r}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:428
+#: lib/pp_admintools/app/remove_ldap_user.py:466
 msgid "Did not found any unique group memberships of {dn!r} in {inst}."
 msgstr "Keine eindeutigen Gruppenmitgliedschaften von {dn!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:452
+#: lib/pp_admintools/app/remove_ldap_user.py:490
 msgid "Deleting user {uid!r} from all POSIX groups in {inst}."
 msgstr "Lösche Nutzer {uid!r} aus allen POSIX-Gruppen in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:459
+#: lib/pp_admintools/app/remove_ldap_user.py:497
 msgid "Did not found any POSIX group memberships of {uid!r} in {inst}."
 msgstr "Keine POSIX-Gruppenmitgliedschaften von {uid!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:483
+#: lib/pp_admintools/app/remove_ldap_user.py:521
 msgid "Deleting user {uid!r} from all sudo groups in {inst}."
 msgstr "Lösche Nutzer {uid!r} aus allen sudo-Gruppen in {inst}."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:490
+#: lib/pp_admintools/app/remove_ldap_user.py:528
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr "Keine sudo-Gruppenmitgliedschaften von {uid!r} in {inst} gefunden."
 
+#: lib/pp_admintools/app/set_ldap_password.py:84
+msgid ""
+"Changing the password of the given user. If no user was given, then {app} tries to use the name "
+"of the user logged in on the controlling terminal."
+msgstr ""
+"Ändern des Passwortes des angegebenen Nutzers. Wenn kein Nutzer angegeben wird, versucht {app} "
+"den Namen des am Terminal angemeldeten Nutzers zu verwenden."
+
+#: lib/pp_admintools/app/set_ldap_password.py:118
+msgid "Options for {}"
+msgstr "Optionen für {}"
+
+#: lib/pp_admintools/app/set_ldap_password.py:125
+msgid "Use {} as the current user password."
+msgstr "Verwende {} als das aktuelle Nutzerpasswort."
+
+#: lib/pp_admintools/app/set_ldap_password.py:130
+msgid ""
+"Prompt for current user password. This is used instead of specifying the password on the command"
+" line."
+msgstr ""
+"Nachfrage nach dem aktuellen Passwort des Nutzers. Das wird anstelle der Angabe des Passortes "
+"in der Kommandozeile verwendet."
+
+#: lib/pp_admintools/app/set_ldap_password.py:138
+msgid "Use contents of {} as the current user password."
+msgstr "Verwende den Inhalt von {} als das aktuelle Nutzerpasswort."
+
+#: lib/pp_admintools/app/set_ldap_password.py:143
+msgid "Use {} as the new user password. If not given, it will be asked for it."
+msgstr "Verwende {} als das neue Nutzerpasswort. Wenn nicht angegeben, wird danach gefragt."
+
+#: lib/pp_admintools/app/set_ldap_password.py:148
+msgid ""
+"The user, which password in the given LDAP instance should be changed. It may be given by its "
+"Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
+msgstr ""
+"Der Nutzer, dessen Passwort in der angegebenen LDAP-Instanz geändert werden soll. Er kann als "
+"seine Uid (der alphanumerische POSIX-Nutzername), als seine Mailadresse oder als seine LDAP-DN "
+"angegeben werden."
+
+#: lib/pp_admintools/app/set_ldap_password.py:153
+msgid "If not given, then your current user name {!r} will be used."
+msgstr "Wenn nicht angegeben, dann wird der aktuelle Nutzername {!r} verwendet."
+
+#: lib/pp_admintools/app/set_ldap_password.py:156
+msgid ""
+"If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
+" somehow the current password of the user to change."
+msgstr ""
+"Wenn eine LDAP-Instanz verwendet wird, die nur Leserechte oder keinen Admin-Zugriff hat, dann muss"
+"irgendwie das neue Passwort des Nutzer zum Ändern angegeben werden."
+
+#: lib/pp_admintools/app/set_ldap_password.py:186
+msgid "Could not detect your current login name."
+msgstr "Konnte den aktuellen Anmeldenamen nicht ermitteln."
+
+#: lib/pp_admintools/app/set_ldap_password.py:191
+msgid "The user {!r} will never be managed by LDAP."
+msgstr "Der Nutzer {!r} wird niemals nimmer nicht von LDAP gemanagt."
+
+#: lib/pp_admintools/app/set_ldap_password.py:223
+msgid "Using LDAP instance {inst!r} - {url}."
+msgstr "Verwende LDAP-Instanz {inst!r} - {url}."
+
+#: lib/pp_admintools/app/set_ldap_password.py:229
+msgid "Current password of user {!r}:"
+msgstr "Aktuelles Passwort des Nutzers {!r}:"
+
+#: lib/pp_admintools/app/set_ldap_password.py:238
+msgid "New password of user {!r}:"
+msgstr "Neues Passwort für Nutzer {!r}:"
+
+#: lib/pp_admintools/app/set_ldap_password.py:249
+msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
+msgstr "Teste eine Anmeldung am LDAP-Server {url} als aktueller Nutzer {dn!r} mit Passwort …"
+
+#: lib/pp_admintools/app/set_ldap_password.py:261
+msgid "Successful connected as {dn!r} to {url}."
+msgstr "Erfolgreich als {dn!r} an {url} angemeldet."
+
+#: lib/pp_admintools/app/set_ldap_password.py:266
+msgid "Could not connect to {url} as {dn!r}: {e}"
+msgstr "Nutzer {dn!r} konnte nicht an {url} angemeldet werden: {e}"
+
+#: lib/pp_admintools/app/set_ldap_password.py:301
+msgid ""
+"Please use another username, or use the correct DN from the following list as a parameter for "
+"this script instead of the username:"
+msgstr ""
+"Bitte einen anderen Nutzernamen oder den richtigen DN aus der folgenden Liste als Parameter "
+"für dieses Skript als Nutzername angeben:"
+
+#: lib/pp_admintools/app/set_ldap_password.py:318
+msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
+msgstr "Ändern des Passwortes des Nutzers {dn!r} in der LDAP-Instanz {inst}."
+
 #: lib/pp_admintools/argparse_actions.py:45
 msgid "Value {v!r} for a {what} port is invalid:"
 msgstr "Der Wert {v!r} für ein {what}-Port ist ungültig."
@@ -1134,35 +1276,39 @@ msgstr "Keine gültigen Master in der Konfiguration gefunden."
 msgid "Evaluated configuration:"
 msgstr "Evaluierte Konfiguration:"
 
-#: lib/pp_admintools/config/ldap.py:150
+#: lib/pp_admintools/config/ldap.py:162
 msgid "Invalid port {!r} for LDAP server given."
 msgstr "Ungültiger Port {!r} für den LDAP-Server angegeben."
 
-#: lib/pp_admintools/config/ldap.py:163
+#: lib/pp_admintools/config/ldap.py:175
 msgid "An empty Base DN for LDAP searches is not allowed."
 msgstr "Eine leere Basis-DN für LDAP-Suchen ist nicht erlaubt."
 
-#: lib/pp_admintools/config/ldap.py:352
+#: lib/pp_admintools/config/ldap.py:265
+msgid "Invalid production tier {!r} given."
+msgstr "Ungültige Produktionsstufe {!r} angegeben."
+
+#: lib/pp_admintools/config/ldap.py:408
 msgid "Evaluating LDAP config ..."
 msgstr "Ermittle LDAP-Konfiguration …"
 
-#: lib/pp_admintools/config/ldap.py:356
+#: lib/pp_admintools/config/ldap.py:412
 msgid "Evaluating LDAP section {!r} ..."
 msgstr "Evaluiere LDAP-Abschnitt {!r} …"
 
-#: lib/pp_admintools/config/ldap.py:373
+#: lib/pp_admintools/config/ldap.py:429
 msgid "Value {!r} for a timeout is invalid."
 msgstr "Der Wert {!r} für einen Timeout ist ungültig."
 
-#: lib/pp_admintools/config/ldap.py:393
+#: lib/pp_admintools/config/ldap.py:449
 msgid "Reading configuration of LDAP instance {!r} ..."
 msgstr "Lese Konfiguration der LDAP-Instanz {!r} …"
 
-#: lib/pp_admintools/config/ldap.py:401
+#: lib/pp_admintools/config/ldap.py:457
 msgid "Invalid value {val!r} in section {sec!r} for a LDAP {what}."
 msgstr "Ungültiger Wert {val!r} in Abschnitt {sec!r} für ein LDAP-{what}."
 
-#: lib/pp_admintools/config/ldap.py:451
+#: lib/pp_admintools/config/ldap.py:519
 msgid "Unknown LDAP configuration key {key} found in section {sec!r}."
 msgstr "Unbekannten Konfigurationsschlüssel {key} in Abschnitt {sec!r} gefunden."
 
index 0d5616b61e27bcbaad3fe1c69550853805b6cce3..44f4271c14b11cd11d991aff7ca6397586004f64 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-09-19 14:05+0200\n"
-"PO-Revision-Date: 2022-09-09 11:40+0200\n"
+"POT-Creation-Date: 2022-09-22 14:24+0200\n"
+"PO-Revision-Date: 2022-09-22 14:25+0200\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: en_US\n"
 "Language-Team: Frank Brehm <frank.brehm@pixelpark.com>\n"
@@ -18,42 +18,56 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.10.3\n"
 
-#: lib/pp_admintools/app/__init__.py:57
+#: lib/pp_admintools/app/__init__.py:58
 msgid "Timeout on answering on the console."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:76
+#: lib/pp_admintools/app/__init__.py:77
 msgid "a timeout must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:81
+#: lib/pp_admintools/app/__init__.py:82
 msgid "Wrong timeout {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:125 lib/pp_admintools/app/remove_ldap_user.py:240
+#: lib/pp_admintools/app/__init__.py:126 lib/pp_admintools/app/remove_ldap_user.py:278
 msgid "yes"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:132
+#: lib/pp_admintools/app/__init__.py:133
 msgid "no"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:163
+#: lib/pp_admintools/app/__init__.py:164
 msgid "Wrong prompt timeout {v!r}, must be greater or equal to Null and less or equal to {max}."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:243
-msgid "Yes/No"
+#: lib/pp_admintools/app/__init__.py:249
+msgid "Password:"
+msgstr ""
+
+#: lib/pp_admintools/app/__init__.py:252 lib/pp_admintools/app/set_ldap_password.py:230
+#: lib/pp_admintools/app/set_ldap_password.py:239
+msgid "Repeat password:"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:248
+#: lib/pp_admintools/app/__init__.py:266
+msgid "The entered passwords does not match."
+msgstr ""
+
+#: lib/pp_admintools/app/__init__.py:279 lib/pp_admintools/app/__init__.py:345
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:281 lib/pp_admintools/app/__init__.py:286
+#: lib/pp_admintools/app/__init__.py:304 lib/pp_admintools/app/__init__.py:309
+#: lib/pp_admintools/app/__init__.py:378 lib/pp_admintools/app/__init__.py:383
 msgid "Got a {}:"
 msgstr ""
 
+#: lib/pp_admintools/app/__init__.py:340
+msgid "Yes/No"
+msgstr ""
+
 #: lib/pp_admintools/app/dns_deploy_zones.py:121
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
@@ -150,10 +164,10 @@ msgid "Executing: {}"
 msgstr ""
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:447 lib/pp_admintools/app/dns_deploy_zones.py:801
-#: lib/pp_admintools/app/ldap.py:691 lib/pp_admintools/app/ldap.py:744
-#: lib/pp_admintools/app/ldap.py:797 lib/pp_admintools/app/ldap.py:1026
-#: lib/pp_admintools/app/ldap.py:1060 lib/pp_admintools/app/ldap.py:1094
-#: lib/pp_admintools/app/ldap.py:1128
+#: lib/pp_admintools/app/ldap.py:760 lib/pp_admintools/app/ldap.py:813
+#: lib/pp_admintools/app/ldap.py:866 lib/pp_admintools/app/ldap.py:1095
+#: lib/pp_admintools/app/ldap.py:1129 lib/pp_admintools/app/ldap.py:1163
+#: lib/pp_admintools/app/ldap.py:1197
 msgid "Result:"
 msgstr ""
 
@@ -315,27 +329,30 @@ msgstr "Restarting {} …"
 msgid "Reloading {} ..."
 msgstr "Reloading {} …"
 
-#: lib/pp_admintools/app/ldap.py:106 lib/pp_admintools/app/ldap.py:209
+#: lib/pp_admintools/app/ldap.py:108 lib/pp_admintools/app/ldap.py:211
 msgid "The path {!r} must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:112 lib/pp_admintools/app/ldap.py:213
+#: lib/pp_admintools/app/ldap.py:114 lib/pp_admintools/app/ldap.py:215
+#: lib/pp_admintools/app/ldap.py:1211
 msgid "The file {!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:116 lib/pp_admintools/app/ldap.py:217
+#: lib/pp_admintools/app/ldap.py:118 lib/pp_admintools/app/ldap.py:219
+#: lib/pp_admintools/app/ldap.py:1216
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:120 lib/pp_admintools/app/ldap.py:221
+#: lib/pp_admintools/app/ldap.py:122 lib/pp_admintools/app/ldap.py:223
+#: lib/pp_admintools/app/ldap.py:1221
 msgid "The given file {!r} is not readable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:141
+#: lib/pp_admintools/app/ldap.py:143
 msgid "a port number must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:146
+#: lib/pp_admintools/app/ldap.py:148
 msgid "Wrong port number {!r}:"
 msgstr ""
 
@@ -351,7 +368,7 @@ msgstr ""
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:267 lib/pp_admintools/app/remove_ldap_user.py:240
+#: lib/pp_admintools/app/ldap.py:267 lib/pp_admintools/app/remove_ldap_user.py:278
 msgid "No"
 msgstr ""
 
@@ -388,7 +405,9 @@ msgstr ""
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:311
+#: lib/pp_admintools/app/ldap.py:311 lib/pp_admintools/app/set_ldap_password.py:124
+#: lib/pp_admintools/app/set_ldap_password.py:125 lib/pp_admintools/app/set_ldap_password.py:142
+#: lib/pp_admintools/app/set_ldap_password.py:145
 msgid "PASSWORD"
 msgstr ""
 
@@ -402,7 +421,8 @@ msgid ""
 "command line."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:323
+#: lib/pp_admintools/app/ldap.py:323 lib/pp_admintools/app/set_ldap_password.py:136
+#: lib/pp_admintools/app/set_ldap_password.py:138
 msgid "PASSWORD_FILE"
 msgstr ""
 
@@ -437,218 +457,230 @@ msgstr ""
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:392
+#: lib/pp_admintools/app/ldap.py:394
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:396
+#: lib/pp_admintools/app/ldap.py:398
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:433
+#: lib/pp_admintools/app/ldap.py:449
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:447
+#: lib/pp_admintools/app/ldap.py:466
 msgid "Verifying given instances ..."
 msgstr "Verifying given instances …"
 
-#: lib/pp_admintools/app/ldap.py:465
+#: lib/pp_admintools/app/ldap.py:477
+msgid "Used filter:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:507 lib/pp_admintools/app/remove_ldap_user.py:179
 msgid "LDAP instance {!r} not found in configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:473
+#: lib/pp_admintools/app/ldap.py:515
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:522
+#: lib/pp_admintools/app/ldap.py:564
 msgid "Preparations ..."
 msgstr "Preparations …"
 
-#: lib/pp_admintools/app/ldap.py:525
+#: lib/pp_admintools/app/ldap.py:567
 msgid "Open all necessary LDAP connections ..."
 msgstr "Open all necessary LDAP connections …"
 
-#: lib/pp_admintools/app/ldap.py:536
-msgid "Connecting to LDAP server {} ..."
-msgstr "Connecting to LDAP server {} …"
+#: lib/pp_admintools/app/ldap.py:584
+msgid "Info about LDAP server {}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:594
+msgid "Trying to get LDAP server object for {} ..."
+msgstr "Trying to get LDAP server object for {} …"
 
-#: lib/pp_admintools/app/ldap.py:551
+#: lib/pp_admintools/app/ldap.py:610
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:559
+#: lib/pp_admintools/app/ldap.py:617
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:567
-msgid "Info about LDAP server {}:"
-msgstr ""
+#: lib/pp_admintools/app/ldap.py:631
+msgid "Connecting to LDAP server {url} as {dn!r} ..."
+msgstr "Connecting to LDAP server {url} as {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:574
+#: lib/pp_admintools/app/ldap.py:643
 msgid "Finishing ..."
 msgstr "Finishing …"
 
-#: lib/pp_admintools/app/ldap.py:583
+#: lib/pp_admintools/app/ldap.py:652
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Disconnecting from all remaining LDAP instances …"
 
-#: lib/pp_admintools/app/ldap.py:596
+#: lib/pp_admintools/app/ldap.py:665 lib/pp_admintools/app/set_ldap_password.py:273
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Unbinding from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:603
+#: lib/pp_admintools/app/ldap.py:672 lib/pp_admintools/app/set_ldap_password.py:280
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Disconnecting from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:612
+#: lib/pp_admintools/app/ldap.py:681
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr "Trying to evaluate DN of user {user!r} in LDAP instance {inst} …"
 
-#: lib/pp_admintools/app/ldap.py:617
+#: lib/pp_admintools/app/ldap.py:686
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr "Trying to evaluate DN of user {u!r} as a mail address …"
 
-#: lib/pp_admintools/app/ldap.py:624
+#: lib/pp_admintools/app/ldap.py:693
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr "Trying to evaluate DN of user {u!r} as a LDAP DN …"
 
-#: lib/pp_admintools/app/ldap.py:631
+#: lib/pp_admintools/app/ldap.py:700
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr "Trying to evaluate DN of user {u!r} as a UID (Posix user name) …"
 
-#: lib/pp_admintools/app/ldap.py:640 lib/pp_admintools/app/remove_ldap_user.py:260
+#: lib/pp_admintools/app/ldap.py:709 lib/pp_admintools/app/remove_ldap_user.py:298
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:643
+#: lib/pp_admintools/app/ldap.py:712
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr "Trying to evaluate DN of user {u!r} as a CN ({c}) …"
 
-#: lib/pp_admintools/app/ldap.py:673 lib/pp_admintools/app/ldap.py:726
-#: lib/pp_admintools/app/ldap.py:779 lib/pp_admintools/app/ldap.py:1011
-#: lib/pp_admintools/app/ldap.py:1045 lib/pp_admintools/app/ldap.py:1079
-#: lib/pp_admintools/app/ldap.py:1113
+#: lib/pp_admintools/app/ldap.py:742 lib/pp_admintools/app/ldap.py:795
+#: lib/pp_admintools/app/ldap.py:848 lib/pp_admintools/app/ldap.py:1080
+#: lib/pp_admintools/app/ldap.py:1114 lib/pp_admintools/app/ldap.py:1148
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:684
+#: lib/pp_admintools/app/ldap.py:753
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:688 lib/pp_admintools/app/ldap.py:741
-#: lib/pp_admintools/app/ldap.py:794 lib/pp_admintools/app/ldap.py:882
-#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1057
-#: lib/pp_admintools/app/ldap.py:1091 lib/pp_admintools/app/ldap.py:1125
+#: lib/pp_admintools/app/ldap.py:757 lib/pp_admintools/app/ldap.py:810
+#: lib/pp_admintools/app/ldap.py:863 lib/pp_admintools/app/ldap.py:951
+#: lib/pp_admintools/app/ldap.py:1092 lib/pp_admintools/app/ldap.py:1126
+#: lib/pp_admintools/app/ldap.py:1160 lib/pp_admintools/app/ldap.py:1194
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:695
+#: lib/pp_admintools/app/ldap.py:764
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:737
+#: lib/pp_admintools/app/ldap.py:806
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:748
+#: lib/pp_admintools/app/ldap.py:817
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:790
+#: lib/pp_admintools/app/ldap.py:859
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:801
+#: lib/pp_admintools/app/ldap.py:870
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:818
+#: lib/pp_admintools/app/ldap.py:887
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:836
+#: lib/pp_admintools/app/ldap.py:905
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:846
+#: lib/pp_admintools/app/ldap.py:915
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:868
+#: lib/pp_admintools/app/ldap.py:937
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:878
+#: lib/pp_admintools/app/ldap.py:947
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:886
+#: lib/pp_admintools/app/ldap.py:955
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:926
+#: lib/pp_admintools/app/ldap.py:995
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:931
+#: lib/pp_admintools/app/ldap.py:1000
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:937
+#: lib/pp_admintools/app/ldap.py:1006
 msgid "Modification NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:938 lib/pp_admintools/app/remove_ldap_user.py:387
-#: lib/pp_admintools/app/remove_ldap_user.py:414 lib/pp_admintools/app/remove_ldap_user.py:441
-#: lib/pp_admintools/app/remove_ldap_user.py:472 lib/pp_admintools/app/remove_ldap_user.py:503
+#: lib/pp_admintools/app/ldap.py:1007 lib/pp_admintools/app/remove_ldap_user.py:425
+#: lib/pp_admintools/app/remove_ldap_user.py:452 lib/pp_admintools/app/remove_ldap_user.py:479
+#: lib/pp_admintools/app/remove_ldap_user.py:510 lib/pp_admintools/app/remove_ldap_user.py:541
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:950
+#: lib/pp_admintools/app/ldap.py:1019
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:952
+#: lib/pp_admintools/app/ldap.py:1021
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:955
+#: lib/pp_admintools/app/ldap.py:1024
 msgid "Modification NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:959
+#: lib/pp_admintools/app/ldap.py:1028
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:968
+#: lib/pp_admintools/app/ldap.py:1037
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Deleting LDAP entry {dn!r} on {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:973
+#: lib/pp_admintools/app/ldap.py:1042
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:979
+#: lib/pp_admintools/app/ldap.py:1048
 msgid "Deletion NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:983
+#: lib/pp_admintools/app/ldap.py:1052
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:985
+#: lib/pp_admintools/app/ldap.py:1054
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:988
+#: lib/pp_admintools/app/ldap.py:1057
 msgid "Deletion NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:992
+#: lib/pp_admintools/app/ldap.py:1061
 msgid "Deletion successful."
 msgstr ""
 
+#: lib/pp_admintools/app/ldap.py:1208
+msgid "Reading password file {!r} ..."
+msgstr "Reading password file {!r} …"
+
 #: lib/pp_admintools/app/mail.py:103
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
@@ -863,11 +895,11 @@ msgid "Deactivating the user instead of removing it."
 msgstr ""
 
 #: lib/pp_admintools/app/remove_ldap_user.py:128
-#, fuzzy
 msgid "Removing the user from LDAP."
-msgstr "Removing all given users from {} …"
+msgstr "Removing the user from LDAP."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:136
+#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:162
+#: lib/pp_admintools/app/set_ldap_password.py:165
 msgid "USER"
 msgstr ""
 
@@ -878,148 +910,246 @@ msgid ""
 "different in the particular LDAP instances)."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:154
+#: lib/pp_admintools/app/remove_ldap_user.py:159
 msgid "No users to remove given."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:171
+#: lib/pp_admintools/app/remove_ldap_user.py:172
+msgid "Checking given instances for admin and read/write access."
+msgstr ""
+
+#: lib/pp_admintools/app/remove_ldap_user.py:187
+msgid "LDAP instance {!r} has only readonly access."
+msgstr ""
+
+#: lib/pp_admintools/app/remove_ldap_user.py:192
+msgid "No admin access to LDAP instance {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/remove_ldap_user.py:209
 msgid "All given users were not found in any LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:176
+#: lib/pp_admintools/app/remove_ldap_user.py:214
 msgid "Evaluated DNs to remove:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:185
+#: lib/pp_admintools/app/remove_ldap_user.py:223
 msgid "Start disabling user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:187
+#: lib/pp_admintools/app/remove_ldap_user.py:225
 msgid "Start removing user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:191
+#: lib/pp_admintools/app/remove_ldap_user.py:229
 msgid "Start disabling user entries ..."
 msgstr "Start disabling user entries …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:193
+#: lib/pp_admintools/app/remove_ldap_user.py:231
 msgid "Start removing user entries ..."
 msgstr "Start removing user entries …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:208
+#: lib/pp_admintools/app/remove_ldap_user.py:246
 msgid "Do you really want to deactivate the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:210
+#: lib/pp_admintools/app/remove_ldap_user.py:248
 msgid "Do you really want to remove the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:236
+#: lib/pp_admintools/app/remove_ldap_user.py:274
 msgid "Deactivate [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:238
+#: lib/pp_admintools/app/remove_ldap_user.py:276
 msgid "Remove [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:245
+#: lib/pp_admintools/app/remove_ldap_user.py:283
 msgid "Abort deactivating by {cls}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:247
+#: lib/pp_admintools/app/remove_ldap_user.py:285
 msgid "Abort removing by {cls}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:256
+#: lib/pp_admintools/app/remove_ldap_user.py:294
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr "Evaluating DNs of the user {!r} to remove …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:270
+#: lib/pp_admintools/app/remove_ldap_user.py:308 lib/pp_admintools/app/set_ldap_password.py:294
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:277
+#: lib/pp_admintools/app/remove_ldap_user.py:315 lib/pp_admintools/app/set_ldap_password.py:299
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:289
+#: lib/pp_admintools/app/remove_ldap_user.py:327 lib/pp_admintools/app/set_ldap_password.py:313
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:298
+#: lib/pp_admintools/app/remove_ldap_user.py:336
 msgid "Deactivating all given users from {} ..."
 msgstr "Deactivating all given users from {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:300
+#: lib/pp_admintools/app/remove_ldap_user.py:338
 msgid "Removing all given users from {} ..."
 msgstr "Removing all given users from {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:315
+#: lib/pp_admintools/app/remove_ldap_user.py:353
 msgid "Deactivating user {dn!r} from {inst} ..."
 msgstr "Deactivating user {dn!r} from {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/remove_ldap_user.py:356
 msgid "Removing user {dn!r} from {inst} ..."
 msgstr "Removing user {dn!r} from {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:324
+#: lib/pp_admintools/app/remove_ldap_user.py:362
 msgid "Attributes of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:345
+#: lib/pp_admintools/app/remove_ldap_user.py:383
 msgid "{c} on removing user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:351
+#: lib/pp_admintools/app/remove_ldap_user.py:389
 msgid "User {dn!r} successful deactivated on {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:354
+#: lib/pp_admintools/app/remove_ldap_user.py:392
 msgid "User {dn!r} successful removed from {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:380
+#: lib/pp_admintools/app/remove_ldap_user.py:418
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr "Updating user info for {dn!r} on {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:385
+#: lib/pp_admintools/app/remove_ldap_user.py:423
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:401
+#: lib/pp_admintools/app/remove_ldap_user.py:439
 msgid "Did not found any group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:407 lib/pp_admintools/app/remove_ldap_user.py:434
-#: lib/pp_admintools/app/remove_ldap_user.py:465 lib/pp_admintools/app/remove_ldap_user.py:496
+#: lib/pp_admintools/app/remove_ldap_user.py:445 lib/pp_admintools/app/remove_ldap_user.py:472
+#: lib/pp_admintools/app/remove_ldap_user.py:503 lib/pp_admintools/app/remove_ldap_user.py:534
 msgid "Removing user {u!r} from group {g!r} ..."
 msgstr "Removing user {u!r} from group {g!r} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:412 lib/pp_admintools/app/remove_ldap_user.py:439
-#: lib/pp_admintools/app/remove_ldap_user.py:470 lib/pp_admintools/app/remove_ldap_user.py:501
+#: lib/pp_admintools/app/remove_ldap_user.py:450 lib/pp_admintools/app/remove_ldap_user.py:477
+#: lib/pp_admintools/app/remove_ldap_user.py:508 lib/pp_admintools/app/remove_ldap_user.py:539
 msgid "{c} on removing user {dn!r} from group {g!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:428
+#: lib/pp_admintools/app/remove_ldap_user.py:466
 msgid "Did not found any unique group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:452
+#: lib/pp_admintools/app/remove_ldap_user.py:490
 msgid "Deleting user {uid!r} from all POSIX groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:459
+#: lib/pp_admintools/app/remove_ldap_user.py:497
 msgid "Did not found any POSIX group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:483
+#: lib/pp_admintools/app/remove_ldap_user.py:521
 msgid "Deleting user {uid!r} from all sudo groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:490
+#: lib/pp_admintools/app/remove_ldap_user.py:528
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr ""
 
+#: lib/pp_admintools/app/set_ldap_password.py:84
+msgid ""
+"Changing the password of the given user. If no user was given, then {app} tries to use the name "
+"of the user logged in on the controlling terminal."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:118
+msgid "Options for {}"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:125
+msgid "Use {} as the current user password."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:130
+msgid ""
+"Prompt for current user password. This is used instead of specifying the password on the command"
+" line."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:138
+msgid "Use contents of {} as the current user password."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:143
+msgid "Use {} as the new user password. If not given, it will be asked for it."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:148
+msgid ""
+"The user, which password in the given LDAP instance should be changed. It may be given by its "
+"Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:153
+msgid "If not given, then your current user name {!r} will be used."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:156
+msgid ""
+"If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
+" somehow the current password of the user to change."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:186
+msgid "Could not detect your current login name."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:191
+msgid "The user {!r} will never be managed by LDAP."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:223
+msgid "Using LDAP instance {inst!r} - {url}."
+msgstr "Using LDAP instance {inst!r} - {url}."
+
+#: lib/pp_admintools/app/set_ldap_password.py:229
+msgid "Current password of user {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:238
+msgid "New password of user {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:249
+msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:261
+msgid "Successful connected as {dn!r} to {url}."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:266
+msgid "Could not connect to {url} as {dn!r}: {e}"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:301
+msgid ""
+"Please use another username, or use the correct DN from the following list as a parameter for "
+"this script instead of the username:"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:318
+msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
+msgstr "Changing the password of user {dn!r} in LDAP instance {inst}."
+
 #: lib/pp_admintools/argparse_actions.py:45
 msgid "Value {v!r} for a {what} port is invalid:"
 msgstr ""
@@ -1106,35 +1236,39 @@ msgstr ""
 msgid "Evaluated configuration:"
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:150
+#: lib/pp_admintools/config/ldap.py:162
 msgid "Invalid port {!r} for LDAP server given."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:163
+#: lib/pp_admintools/config/ldap.py:175
 msgid "An empty Base DN for LDAP searches is not allowed."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:352
+#: lib/pp_admintools/config/ldap.py:265
+msgid "Invalid production tier {!r} given."
+msgstr ""
+
+#: lib/pp_admintools/config/ldap.py:408
 msgid "Evaluating LDAP config ..."
 msgstr "Evaluating LDAP config …"
 
-#: lib/pp_admintools/config/ldap.py:356
+#: lib/pp_admintools/config/ldap.py:412
 msgid "Evaluating LDAP section {!r} ..."
 msgstr "Evaluating LDAP section {!r} …"
 
-#: lib/pp_admintools/config/ldap.py:373
+#: lib/pp_admintools/config/ldap.py:429
 msgid "Value {!r} for a timeout is invalid."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:393
+#: lib/pp_admintools/config/ldap.py:449
 msgid "Reading configuration of LDAP instance {!r} ..."
 msgstr "Reading configuration of LDAP instance {!r} …"
 
-#: lib/pp_admintools/config/ldap.py:401
+#: lib/pp_admintools/config/ldap.py:457
 msgid "Invalid value {val!r} in section {sec!r} for a LDAP {what}."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:451
+#: lib/pp_admintools/config/ldap.py:519
 msgid "Unknown LDAP configuration key {key} found in section {sec!r}."
 msgstr ""
 
index d58d19bfd12b893b04587b57f8b6bf0830b34c73..6f2c175ac874cfb1480f8cfff7b7ba987ceafb03 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-09-19 14:05+0200\n"
+"POT-Creation-Date: 2022-09-22 14:24+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <frank.brehm@pixelpark.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,42 +17,56 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Babel 2.10.3\n"
 
-#: lib/pp_admintools/app/__init__.py:57
+#: lib/pp_admintools/app/__init__.py:58
 msgid "Timeout on answering on the console."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:76
+#: lib/pp_admintools/app/__init__.py:77
 msgid "a timeout must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:81
+#: lib/pp_admintools/app/__init__.py:82
 msgid "Wrong timeout {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:125 lib/pp_admintools/app/remove_ldap_user.py:240
+#: lib/pp_admintools/app/__init__.py:126 lib/pp_admintools/app/remove_ldap_user.py:278
 msgid "yes"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:132
+#: lib/pp_admintools/app/__init__.py:133
 msgid "no"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:163
+#: lib/pp_admintools/app/__init__.py:164
 msgid "Wrong prompt timeout {v!r}, must be greater or equal to Null and less or equal to {max}."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:243
-msgid "Yes/No"
+#: lib/pp_admintools/app/__init__.py:249
+msgid "Password:"
+msgstr ""
+
+#: lib/pp_admintools/app/__init__.py:252 lib/pp_admintools/app/set_ldap_password.py:230
+#: lib/pp_admintools/app/set_ldap_password.py:239
+msgid "Repeat password:"
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:248
+#: lib/pp_admintools/app/__init__.py:266
+msgid "The entered passwords does not match."
+msgstr ""
+
+#: lib/pp_admintools/app/__init__.py:279 lib/pp_admintools/app/__init__.py:345
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:281 lib/pp_admintools/app/__init__.py:286
+#: lib/pp_admintools/app/__init__.py:304 lib/pp_admintools/app/__init__.py:309
+#: lib/pp_admintools/app/__init__.py:378 lib/pp_admintools/app/__init__.py:383
 msgid "Got a {}:"
 msgstr ""
 
+#: lib/pp_admintools/app/__init__.py:340
+msgid "Yes/No"
+msgstr ""
+
 #: lib/pp_admintools/app/dns_deploy_zones.py:121
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
@@ -149,10 +163,10 @@ msgid "Executing: {}"
 msgstr ""
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:447 lib/pp_admintools/app/dns_deploy_zones.py:801
-#: lib/pp_admintools/app/ldap.py:691 lib/pp_admintools/app/ldap.py:744
-#: lib/pp_admintools/app/ldap.py:797 lib/pp_admintools/app/ldap.py:1026
-#: lib/pp_admintools/app/ldap.py:1060 lib/pp_admintools/app/ldap.py:1094
-#: lib/pp_admintools/app/ldap.py:1128
+#: lib/pp_admintools/app/ldap.py:760 lib/pp_admintools/app/ldap.py:813
+#: lib/pp_admintools/app/ldap.py:866 lib/pp_admintools/app/ldap.py:1095
+#: lib/pp_admintools/app/ldap.py:1129 lib/pp_admintools/app/ldap.py:1163
+#: lib/pp_admintools/app/ldap.py:1197
 msgid "Result:"
 msgstr ""
 
@@ -314,27 +328,30 @@ msgstr ""
 msgid "Reloading {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:106 lib/pp_admintools/app/ldap.py:209
+#: lib/pp_admintools/app/ldap.py:108 lib/pp_admintools/app/ldap.py:211
 msgid "The path {!r} must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:112 lib/pp_admintools/app/ldap.py:213
+#: lib/pp_admintools/app/ldap.py:114 lib/pp_admintools/app/ldap.py:215
+#: lib/pp_admintools/app/ldap.py:1211
 msgid "The file {!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:116 lib/pp_admintools/app/ldap.py:217
+#: lib/pp_admintools/app/ldap.py:118 lib/pp_admintools/app/ldap.py:219
+#: lib/pp_admintools/app/ldap.py:1216
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:120 lib/pp_admintools/app/ldap.py:221
+#: lib/pp_admintools/app/ldap.py:122 lib/pp_admintools/app/ldap.py:223
+#: lib/pp_admintools/app/ldap.py:1221
 msgid "The given file {!r} is not readable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:141
+#: lib/pp_admintools/app/ldap.py:143
 msgid "a port number must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:146
+#: lib/pp_admintools/app/ldap.py:148
 msgid "Wrong port number {!r}:"
 msgstr ""
 
@@ -350,7 +367,7 @@ msgstr ""
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:267 lib/pp_admintools/app/remove_ldap_user.py:240
+#: lib/pp_admintools/app/ldap.py:267 lib/pp_admintools/app/remove_ldap_user.py:278
 msgid "No"
 msgstr ""
 
@@ -387,7 +404,9 @@ msgstr ""
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:311
+#: lib/pp_admintools/app/ldap.py:311 lib/pp_admintools/app/set_ldap_password.py:124
+#: lib/pp_admintools/app/set_ldap_password.py:125 lib/pp_admintools/app/set_ldap_password.py:142
+#: lib/pp_admintools/app/set_ldap_password.py:145
 msgid "PASSWORD"
 msgstr ""
 
@@ -401,7 +420,8 @@ msgid ""
 "command line."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:323
+#: lib/pp_admintools/app/ldap.py:323 lib/pp_admintools/app/set_ldap_password.py:136
+#: lib/pp_admintools/app/set_ldap_password.py:138
 msgid "PASSWORD_FILE"
 msgstr ""
 
@@ -436,218 +456,230 @@ msgstr ""
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:392
+#: lib/pp_admintools/app/ldap.py:394
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:396
+#: lib/pp_admintools/app/ldap.py:398
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:433
+#: lib/pp_admintools/app/ldap.py:449
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:447
+#: lib/pp_admintools/app/ldap.py:466
 msgid "Verifying given instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:465
+#: lib/pp_admintools/app/ldap.py:477
+msgid "Used filter:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:507 lib/pp_admintools/app/remove_ldap_user.py:179
 msgid "LDAP instance {!r} not found in configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:473
+#: lib/pp_admintools/app/ldap.py:515
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:522
+#: lib/pp_admintools/app/ldap.py:564
 msgid "Preparations ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:525
+#: lib/pp_admintools/app/ldap.py:567
 msgid "Open all necessary LDAP connections ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:536
-msgid "Connecting to LDAP server {} ..."
+#: lib/pp_admintools/app/ldap.py:584
+msgid "Info about LDAP server {}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:594
+msgid "Trying to get LDAP server object for {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:551
+#: lib/pp_admintools/app/ldap.py:610
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:559
+#: lib/pp_admintools/app/ldap.py:617
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:567
-msgid "Info about LDAP server {}:"
+#: lib/pp_admintools/app/ldap.py:631
+msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:574
+#: lib/pp_admintools/app/ldap.py:643
 msgid "Finishing ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:583
+#: lib/pp_admintools/app/ldap.py:652
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:596
+#: lib/pp_admintools/app/ldap.py:665 lib/pp_admintools/app/set_ldap_password.py:273
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:603
+#: lib/pp_admintools/app/ldap.py:672 lib/pp_admintools/app/set_ldap_password.py:280
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:612
+#: lib/pp_admintools/app/ldap.py:681
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:617
+#: lib/pp_admintools/app/ldap.py:686
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:624
+#: lib/pp_admintools/app/ldap.py:693
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:631
+#: lib/pp_admintools/app/ldap.py:700
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:640 lib/pp_admintools/app/remove_ldap_user.py:260
+#: lib/pp_admintools/app/ldap.py:709 lib/pp_admintools/app/remove_ldap_user.py:298
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:643
+#: lib/pp_admintools/app/ldap.py:712
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:673 lib/pp_admintools/app/ldap.py:726
-#: lib/pp_admintools/app/ldap.py:779 lib/pp_admintools/app/ldap.py:1011
-#: lib/pp_admintools/app/ldap.py:1045 lib/pp_admintools/app/ldap.py:1079
-#: lib/pp_admintools/app/ldap.py:1113
+#: lib/pp_admintools/app/ldap.py:742 lib/pp_admintools/app/ldap.py:795
+#: lib/pp_admintools/app/ldap.py:848 lib/pp_admintools/app/ldap.py:1080
+#: lib/pp_admintools/app/ldap.py:1114 lib/pp_admintools/app/ldap.py:1148
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:684
+#: lib/pp_admintools/app/ldap.py:753
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:688 lib/pp_admintools/app/ldap.py:741
-#: lib/pp_admintools/app/ldap.py:794 lib/pp_admintools/app/ldap.py:882
-#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1057
-#: lib/pp_admintools/app/ldap.py:1091 lib/pp_admintools/app/ldap.py:1125
+#: lib/pp_admintools/app/ldap.py:757 lib/pp_admintools/app/ldap.py:810
+#: lib/pp_admintools/app/ldap.py:863 lib/pp_admintools/app/ldap.py:951
+#: lib/pp_admintools/app/ldap.py:1092 lib/pp_admintools/app/ldap.py:1126
+#: lib/pp_admintools/app/ldap.py:1160 lib/pp_admintools/app/ldap.py:1194
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:695
+#: lib/pp_admintools/app/ldap.py:764
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:737
+#: lib/pp_admintools/app/ldap.py:806
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:748
+#: lib/pp_admintools/app/ldap.py:817
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:790
+#: lib/pp_admintools/app/ldap.py:859
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:801
+#: lib/pp_admintools/app/ldap.py:870
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:818
+#: lib/pp_admintools/app/ldap.py:887
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:836
+#: lib/pp_admintools/app/ldap.py:905
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:846
+#: lib/pp_admintools/app/ldap.py:915
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:868
+#: lib/pp_admintools/app/ldap.py:937
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:878
+#: lib/pp_admintools/app/ldap.py:947
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:886
+#: lib/pp_admintools/app/ldap.py:955
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:926
+#: lib/pp_admintools/app/ldap.py:995
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:931
+#: lib/pp_admintools/app/ldap.py:1000
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:937
+#: lib/pp_admintools/app/ldap.py:1006
 msgid "Modification NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:938 lib/pp_admintools/app/remove_ldap_user.py:387
-#: lib/pp_admintools/app/remove_ldap_user.py:414 lib/pp_admintools/app/remove_ldap_user.py:441
-#: lib/pp_admintools/app/remove_ldap_user.py:472 lib/pp_admintools/app/remove_ldap_user.py:503
+#: lib/pp_admintools/app/ldap.py:1007 lib/pp_admintools/app/remove_ldap_user.py:425
+#: lib/pp_admintools/app/remove_ldap_user.py:452 lib/pp_admintools/app/remove_ldap_user.py:479
+#: lib/pp_admintools/app/remove_ldap_user.py:510 lib/pp_admintools/app/remove_ldap_user.py:541
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:950
+#: lib/pp_admintools/app/ldap.py:1019
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:952
+#: lib/pp_admintools/app/ldap.py:1021
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:955
+#: lib/pp_admintools/app/ldap.py:1024
 msgid "Modification NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:959
+#: lib/pp_admintools/app/ldap.py:1028
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:968
+#: lib/pp_admintools/app/ldap.py:1037
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:973
+#: lib/pp_admintools/app/ldap.py:1042
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:979
+#: lib/pp_admintools/app/ldap.py:1048
 msgid "Deletion NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:983
+#: lib/pp_admintools/app/ldap.py:1052
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:985
+#: lib/pp_admintools/app/ldap.py:1054
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:988
+#: lib/pp_admintools/app/ldap.py:1057
 msgid "Deletion NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:992
+#: lib/pp_admintools/app/ldap.py:1061
 msgid "Deletion successful."
 msgstr ""
 
+#: lib/pp_admintools/app/ldap.py:1208
+msgid "Reading password file {!r} ..."
+msgstr ""
+
 #: lib/pp_admintools/app/mail.py:103
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
@@ -865,7 +897,8 @@ msgstr ""
 msgid "Removing the user from LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:136
+#: lib/pp_admintools/app/remove_ldap_user.py:136 lib/pp_admintools/app/set_ldap_password.py:162
+#: lib/pp_admintools/app/set_ldap_password.py:165
 msgid "USER"
 msgstr ""
 
@@ -876,148 +909,246 @@ msgid ""
 "different in the particular LDAP instances)."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:154
+#: lib/pp_admintools/app/remove_ldap_user.py:159
 msgid "No users to remove given."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:171
+#: lib/pp_admintools/app/remove_ldap_user.py:172
+msgid "Checking given instances for admin and read/write access."
+msgstr ""
+
+#: lib/pp_admintools/app/remove_ldap_user.py:187
+msgid "LDAP instance {!r} has only readonly access."
+msgstr ""
+
+#: lib/pp_admintools/app/remove_ldap_user.py:192
+msgid "No admin access to LDAP instance {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/remove_ldap_user.py:209
 msgid "All given users were not found in any LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:176
+#: lib/pp_admintools/app/remove_ldap_user.py:214
 msgid "Evaluated DNs to remove:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:185
+#: lib/pp_admintools/app/remove_ldap_user.py:223
 msgid "Start disabling user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:187
+#: lib/pp_admintools/app/remove_ldap_user.py:225
 msgid "Start removing user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:191
+#: lib/pp_admintools/app/remove_ldap_user.py:229
 msgid "Start disabling user entries ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:193
+#: lib/pp_admintools/app/remove_ldap_user.py:231
 msgid "Start removing user entries ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:208
+#: lib/pp_admintools/app/remove_ldap_user.py:246
 msgid "Do you really want to deactivate the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:210
+#: lib/pp_admintools/app/remove_ldap_user.py:248
 msgid "Do you really want to remove the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:236
+#: lib/pp_admintools/app/remove_ldap_user.py:274
 msgid "Deactivate [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:238
+#: lib/pp_admintools/app/remove_ldap_user.py:276
 msgid "Remove [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:245
+#: lib/pp_admintools/app/remove_ldap_user.py:283
 msgid "Abort deactivating by {cls}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:247
+#: lib/pp_admintools/app/remove_ldap_user.py:285
 msgid "Abort removing by {cls}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:256
+#: lib/pp_admintools/app/remove_ldap_user.py:294
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:270
+#: lib/pp_admintools/app/remove_ldap_user.py:308 lib/pp_admintools/app/set_ldap_password.py:294
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:277
+#: lib/pp_admintools/app/remove_ldap_user.py:315 lib/pp_admintools/app/set_ldap_password.py:299
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:289
+#: lib/pp_admintools/app/remove_ldap_user.py:327 lib/pp_admintools/app/set_ldap_password.py:313
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:298
+#: lib/pp_admintools/app/remove_ldap_user.py:336
 msgid "Deactivating all given users from {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:300
+#: lib/pp_admintools/app/remove_ldap_user.py:338
 msgid "Removing all given users from {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:315
+#: lib/pp_admintools/app/remove_ldap_user.py:353
 msgid "Deactivating user {dn!r} from {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/remove_ldap_user.py:356
 msgid "Removing user {dn!r} from {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:324
+#: lib/pp_admintools/app/remove_ldap_user.py:362
 msgid "Attributes of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:345
+#: lib/pp_admintools/app/remove_ldap_user.py:383
 msgid "{c} on removing user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:351
+#: lib/pp_admintools/app/remove_ldap_user.py:389
 msgid "User {dn!r} successful deactivated on {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:354
+#: lib/pp_admintools/app/remove_ldap_user.py:392
 msgid "User {dn!r} successful removed from {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:380
+#: lib/pp_admintools/app/remove_ldap_user.py:418
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:385
+#: lib/pp_admintools/app/remove_ldap_user.py:423
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:401
+#: lib/pp_admintools/app/remove_ldap_user.py:439
 msgid "Did not found any group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:407 lib/pp_admintools/app/remove_ldap_user.py:434
-#: lib/pp_admintools/app/remove_ldap_user.py:465 lib/pp_admintools/app/remove_ldap_user.py:496
+#: lib/pp_admintools/app/remove_ldap_user.py:445 lib/pp_admintools/app/remove_ldap_user.py:472
+#: lib/pp_admintools/app/remove_ldap_user.py:503 lib/pp_admintools/app/remove_ldap_user.py:534
 msgid "Removing user {u!r} from group {g!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:412 lib/pp_admintools/app/remove_ldap_user.py:439
-#: lib/pp_admintools/app/remove_ldap_user.py:470 lib/pp_admintools/app/remove_ldap_user.py:501
+#: lib/pp_admintools/app/remove_ldap_user.py:450 lib/pp_admintools/app/remove_ldap_user.py:477
+#: lib/pp_admintools/app/remove_ldap_user.py:508 lib/pp_admintools/app/remove_ldap_user.py:539
 msgid "{c} on removing user {dn!r} from group {g!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:428
+#: lib/pp_admintools/app/remove_ldap_user.py:466
 msgid "Did not found any unique group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:452
+#: lib/pp_admintools/app/remove_ldap_user.py:490
 msgid "Deleting user {uid!r} from all POSIX groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:459
+#: lib/pp_admintools/app/remove_ldap_user.py:497
 msgid "Did not found any POSIX group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:483
+#: lib/pp_admintools/app/remove_ldap_user.py:521
 msgid "Deleting user {uid!r} from all sudo groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:490
+#: lib/pp_admintools/app/remove_ldap_user.py:528
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr ""
 
+#: lib/pp_admintools/app/set_ldap_password.py:84
+msgid ""
+"Changing the password of the given user. If no user was given, then {app} tries to use the name "
+"of the user logged in on the controlling terminal."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:118
+msgid "Options for {}"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:125
+msgid "Use {} as the current user password."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:130
+msgid ""
+"Prompt for current user password. This is used instead of specifying the password on the command"
+" line."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:138
+msgid "Use contents of {} as the current user password."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:143
+msgid "Use {} as the new user password. If not given, it will be asked for it."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:148
+msgid ""
+"The user, which password in the given LDAP instance should be changed. It may be given by its "
+"Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:153
+msgid "If not given, then your current user name {!r} will be used."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:156
+msgid ""
+"If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
+" somehow the current password of the user to change."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:186
+msgid "Could not detect your current login name."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:191
+msgid "The user {!r} will never be managed by LDAP."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:223
+msgid "Using LDAP instance {inst!r} - {url}."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:229
+msgid "Current password of user {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:238
+msgid "New password of user {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:249
+msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:261
+msgid "Successful connected as {dn!r} to {url}."
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:266
+msgid "Could not connect to {url} as {dn!r}: {e}"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:301
+msgid ""
+"Please use another username, or use the correct DN from the following list as a parameter for "
+"this script instead of the username:"
+msgstr ""
+
+#: lib/pp_admintools/app/set_ldap_password.py:318
+msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
+msgstr ""
+
 #: lib/pp_admintools/argparse_actions.py:45
 msgid "Value {v!r} for a {what} port is invalid:"
 msgstr ""
@@ -1104,35 +1235,39 @@ msgstr ""
 msgid "Evaluated configuration:"
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:150
+#: lib/pp_admintools/config/ldap.py:162
 msgid "Invalid port {!r} for LDAP server given."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:163
+#: lib/pp_admintools/config/ldap.py:175
 msgid "An empty Base DN for LDAP searches is not allowed."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:352
+#: lib/pp_admintools/config/ldap.py:265
+msgid "Invalid production tier {!r} given."
+msgstr ""
+
+#: lib/pp_admintools/config/ldap.py:408
 msgid "Evaluating LDAP config ..."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:356
+#: lib/pp_admintools/config/ldap.py:412
 msgid "Evaluating LDAP section {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:373
+#: lib/pp_admintools/config/ldap.py:429
 msgid "Value {!r} for a timeout is invalid."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:393
+#: lib/pp_admintools/config/ldap.py:449
 msgid "Reading configuration of LDAP instance {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:401
+#: lib/pp_admintools/config/ldap.py:457
 msgid "Invalid value {val!r} in section {sec!r} for a LDAP {what}."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:451
+#: lib/pp_admintools/config/ldap.py:519
 msgid "Unknown LDAP configuration key {key} found in section {sec!r}."
 msgstr ""