diff --git a/po/ipa.pot b/po/ipa.pot index 5f8a6432b..f3881e718 100644 --- a/po/ipa.pot +++ b/po/ipa.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: freeipa 4.10.0.dev202202070628+git3c1f4ba99\n" +"Project-Id-Version: freeipa 4.10.0.dev202204261349+gitfbfd64fc2\n" "Report-Msgid-Bugs-To: https://pagure.io/freeipa/new_issue\n" -"POT-Creation-Date: 2022-02-07 08:35+0200\n" +"POT-Creation-Date: 2022-04-26 15:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,6 +18,145 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +#: client/config.c:56 +#, c-format +msgid "cannot open configuration file %s\n" +msgstr "" + +#: client/config.c:63 +#, c-format +msgid "cannot stat() configuration file %s\n" +msgstr "" + +#: client/config.c:69 +#, c-format +msgid "out of memory\n" +msgstr "" + +#: client/config.c:80 +#, c-format +msgid "read error\n" +msgstr "" + +#: client/ipa-rmkeytab.c:51 +#, c-format +msgid "Unable to parse principal name\n" +msgstr "" + +#: client/ipa-rmkeytab.c:53 +#, c-format +msgid "krb5_parse_name %1$d: %2$s\n" +msgstr "" + +#: client/ipa-rmkeytab.c:63 +#, c-format +msgid "Removing principal %s\n" +msgstr "" + +#: client/ipa-rmkeytab.c:76 +#, c-format +msgid "Failed to open keytab\n" +msgstr "" + +#: client/ipa-rmkeytab.c:80 +#, c-format +msgid "principal not found\n" +msgstr "" + +#: client/ipa-rmkeytab.c:82 +#, c-format +msgid "krb5_kt_get_entry %1$d: %2$s\n" +msgstr "" + +#: client/ipa-rmkeytab.c:90 +#, c-format +msgid "Unable to remove entry\n" +msgstr "" + +#: client/ipa-rmkeytab.c:92 +#, c-format +msgid "kvno %d\n" +msgstr "" + +#: client/ipa-rmkeytab.c:93 +#, c-format +msgid "krb5_kt_remove_entry %1$d: %2$s\n" +msgstr "" + +#: client/ipa-rmkeytab.c:124 client/ipa-rmkeytab.c:146 +#: client/ipa-rmkeytab.c:160 client/ipa-rmkeytab.c:263 +#, c-format +msgid "Failed to set cursor '%1$s'\n" +msgstr "" + +#: client/ipa-rmkeytab.c:133 +#, c-format +msgid "Unable to parse principal\n" +msgstr "" + +#: client/ipa-rmkeytab.c:135 +#, c-format +msgid "krb5_unparse_name %1$d: %2$s\n" +msgstr "" + +#: client/ipa-rmkeytab.c:169 +#, c-format +msgid "realm not found\n" +msgstr "" + +#: client/ipa-rmkeytab.c:195 client/ipa-getkeytab.c:942 +msgid "Print debugging information" +msgstr "" + +#: client/ipa-rmkeytab.c:195 +msgid "Debugging output" +msgstr "" + +#: client/ipa-rmkeytab.c:197 +msgid "" +"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" +msgstr "" + +#: client/ipa-rmkeytab.c:198 client/ipa-getkeytab.c:948 +msgid "Kerberos Service Principal Name" +msgstr "" + +#: client/ipa-rmkeytab.c:200 +msgid "The keytab file to remove the principcal(s) from" +msgstr "" + +#: client/ipa-rmkeytab.c:200 client/ipa-getkeytab.c:952 +msgid "Keytab File Name" +msgstr "" + +#: client/ipa-rmkeytab.c:202 +msgid "Remove all principals in this realm" +msgstr "" + +#: client/ipa-rmkeytab.c:202 ipaclient/remote_plugins/2_114/trust.py:111 +msgid "Realm name" +msgstr "" + +#: client/ipa-rmkeytab.c:216 client/ipa-getkeytab.c:1001 +#, c-format +msgid "Kerberos context initialization failed\n" +msgstr "" + +#: client/ipa-rmkeytab.c:256 +#, c-format +msgid "Failed to open keytab '%1$s': %2$s\n" +msgstr "" + +#: client/ipa-rmkeytab.c:279 +#, c-format +msgid "Closing keytab failed\n" +msgstr "" + +#: client/ipa-rmkeytab.c:281 +#, c-format +msgid "krb5_kt_close %1$d: %2$s\n" +msgstr "" + #: client/ipa-getkeytab.c:254 #, c-format msgid "Kerberos context initialization failed: %1$s (%2$d)\n" @@ -47,7 +186,7 @@ msgstr "" msgid "Simple bind failed\n" msgstr "" -#: client/ipa-getkeytab.c:391 client/ipa-join.c:261 +#: client/ipa-getkeytab.c:391 client/ipa-join.c:260 msgid "SASL Bind failed\n" msgstr "" @@ -166,10 +305,6 @@ msgstr "" msgid "Output only on errors" msgstr "" -#: client/ipa-getkeytab.c:942 client/ipa-rmkeytab.c:195 -msgid "Print debugging information" -msgstr "" - #: client/ipa-getkeytab.c:942 msgid "Output debug info" msgstr "" @@ -186,20 +321,12 @@ msgstr "" msgid "The principal to get a keytab for (ex: ftp/ftp.example.com@EXAMPLE.COM)" msgstr "" -#: client/ipa-getkeytab.c:948 client/ipa-rmkeytab.c:198 -msgid "Kerberos Service Principal Name" -msgstr "" - #: client/ipa-getkeytab.c:950 msgid "" "The keytab file to append the new key to (will be created if it does not " "exist)." msgstr "" -#: client/ipa-getkeytab.c:952 client/ipa-rmkeytab.c:200 -msgid "Keytab File Name" -msgstr "" - #: client/ipa-getkeytab.c:954 msgid "Encryption types to request" msgstr "" @@ -268,11 +395,6 @@ msgstr "" msgid "Retrieve current keys without changing them" msgstr "" -#: client/ipa-getkeytab.c:1001 client/ipa-rmkeytab.c:216 -#, c-format -msgid "Kerberos context initialization failed\n" -msgstr "" - #: client/ipa-getkeytab.c:1014 util/ipa_krb5.c:892 #, c-format msgid "No system preferred enctypes ?!\n" @@ -422,443 +544,880 @@ msgstr "" msgid "Keytab successfully retrieved and stored in: %s\n" msgstr "" -#: client/config.c:56 -#, c-format -msgid "cannot open configuration file %s\n" -msgstr "" - -#: client/config.c:63 -#, c-format -msgid "cannot stat() configuration file %s\n" -msgstr "" - -#: client/config.c:69 -#, c-format -msgid "out of memory\n" -msgstr "" - -#: client/config.c:80 -#, c-format -msgid "read error\n" -msgstr "" - -#: client/ipa-rmkeytab.c:51 -#, c-format -msgid "Unable to parse principal name\n" -msgstr "" - -#: client/ipa-rmkeytab.c:53 -#, c-format -msgid "krb5_parse_name %1$d: %2$s\n" -msgstr "" - -#: client/ipa-rmkeytab.c:63 -#, c-format -msgid "Removing principal %s\n" -msgstr "" - -#: client/ipa-rmkeytab.c:76 -#, c-format -msgid "Failed to open keytab\n" -msgstr "" - -#: client/ipa-rmkeytab.c:80 -#, c-format -msgid "principal not found\n" -msgstr "" - -#: client/ipa-rmkeytab.c:82 -#, c-format -msgid "krb5_kt_get_entry %1$d: %2$s\n" -msgstr "" - -#: client/ipa-rmkeytab.c:90 -#, c-format -msgid "Unable to remove entry\n" -msgstr "" - -#: client/ipa-rmkeytab.c:92 -#, c-format -msgid "kvno %d\n" -msgstr "" - -#: client/ipa-rmkeytab.c:93 -#, c-format -msgid "krb5_kt_remove_entry %1$d: %2$s\n" -msgstr "" - -#: client/ipa-rmkeytab.c:124 client/ipa-rmkeytab.c:146 -#: client/ipa-rmkeytab.c:160 client/ipa-rmkeytab.c:263 -#, c-format -msgid "Failed to set cursor '%1$s'\n" -msgstr "" - -#: client/ipa-rmkeytab.c:133 -#, c-format -msgid "Unable to parse principal\n" -msgstr "" - -#: client/ipa-rmkeytab.c:135 -#, c-format -msgid "krb5_unparse_name %1$d: %2$s\n" -msgstr "" - -#: client/ipa-rmkeytab.c:169 -#, c-format -msgid "realm not found\n" -msgstr "" - -#: client/ipa-rmkeytab.c:195 -msgid "Debugging output" -msgstr "" - -#: client/ipa-rmkeytab.c:197 -msgid "" -"The principal to remove from the keytab (ex: ftp/ftp.example.com@EXAMPLE.COM)" -msgstr "" - -#: client/ipa-rmkeytab.c:200 -msgid "The keytab file to remove the principcal(s) from" -msgstr "" - -#: client/ipa-rmkeytab.c:202 -msgid "Remove all principals in this realm" -msgstr "" - -#: client/ipa-rmkeytab.c:202 ipaclient/remote_plugins/2_114/trust.py:111 -msgid "Realm name" -msgstr "" - -#: client/ipa-rmkeytab.c:256 -#, c-format -msgid "Failed to open keytab '%1$s': %2$s\n" -msgstr "" - -#: client/ipa-rmkeytab.c:279 -#, c-format -msgid "Closing keytab failed\n" -msgstr "" - -#: client/ipa-rmkeytab.c:281 -#, c-format -msgid "krb5_kt_close %1$d: %2$s\n" -msgstr "" - -#: client/ipa-join.c:66 client/ipa-join.c:422 client/ipa-join.c:440 -#: client/ipa-join.c:540 client/ipa-join.c:1080 util/ipa_krb5.c:1024 +#: client/ipa-join.c:65 client/ipa-join.c:420 client/ipa-join.c:440 +#: client/ipa-join.c:538 client/ipa-join.c:1065 util/ipa_krb5.c:1024 #: util/ipa_krb5.c:1058 #, c-format msgid "Out of memory!\n" msgstr "" -#: client/ipa-join.c:81 client/ipa-join.c:823 +#: client/ipa-join.c:80 client/ipa-join.c:812 #, c-format msgid "No permission to join this host to the IPA domain.\n" msgstr "" -#: client/ipa-join.c:111 client/ipa-join.c:123 +#: client/ipa-join.c:110 client/ipa-join.c:122 #, c-format msgid "No write permissions on keytab file '%s'\n" msgstr "" -#: client/ipa-join.c:128 +#: client/ipa-join.c:127 #, c-format msgid "access() on %1$s failed: errno = %2$d\n" msgstr "" -#: client/ipa-join.c:152 client/ipa-join.c:181 client/ipa-join.c:232 +#: client/ipa-join.c:151 client/ipa-join.c:180 client/ipa-join.c:231 #, c-format msgid "Out of memory!" msgstr "" -#: client/ipa-join.c:243 +#: client/ipa-join.c:242 #, c-format msgid "Unable to enable SSL in LDAP\n" msgstr "" -#: client/ipa-join.c:335 +#: client/ipa-join.c:334 #, c-format msgid "Search for %1$s on rootdse failed with error %2$d\n" msgstr "" -#: client/ipa-join.c:355 +#: client/ipa-join.c:354 #, c-format msgid "No values for %s" msgstr "" -#: client/ipa-join.c:365 +#: client/ipa-join.c:364 #, c-format msgid "Search for IPA namingContext failed with error %d\n" msgstr "" -#: client/ipa-join.c:371 +#: client/ipa-join.c:370 #, c-format msgid "IPA namingContext not found\n" msgstr "" -#: client/ipa-join.c:429 +#: client/ipa-join.c:426 #, c-format msgid "Unable to determine root DN of %s\n" msgstr "" -#: client/ipa-join.c:475 +#: client/ipa-join.c:474 #, c-format msgid "Enrollment failed. %s\n" msgstr "" -#: client/ipa-join.c:595 +#: client/ipa-join.c:592 #, c-format msgid "principal not found in XML-RPC response\n" msgstr "" -#: client/ipa-join.c:610 client/ipa-join.c:957 +#: client/ipa-join.c:606 client/ipa-join.c:945 #, c-format msgid "Host is already joined.\n" msgstr "" -#: client/ipa-join.c:637 +#: client/ipa-join.c:632 #, c-format msgid "curl_slist_append() failed for value: '%s'\n" msgstr "" -#: client/ipa-join.c:646 +#: client/ipa-join.c:640 #, c-format msgid "curl_easy_setopt() failed\n" msgstr "" -#: client/ipa-join.c:658 +#: client/ipa-join.c:652 #, c-format msgid "Expanding buffer in jsonrpc_handle_response failed" msgstr "" -#: client/ipa-join.c:687 +#: client/ipa-join.c:680 #, c-format msgid "curl_global_init() failed\n" msgstr "" -#: client/ipa-join.c:696 +#: client/ipa-join.c:687 #, c-format msgid "curl_easy_init() failed\n" msgstr "" -#: client/ipa-join.c:746 +#: client/ipa-join.c:736 #, c-format msgid "json_dumps() failed\n" msgstr "" -#: client/ipa-join.c:754 +#: client/ipa-join.c:743 #, c-format msgid "" "JSON-RPC request:\n" "%s\n" msgstr "" -#: client/ipa-join.c:760 +#: client/ipa-join.c:749 #, c-format msgid "JSON-RPC call failed: %s\n" msgstr "" -#: client/ipa-join.c:770 -#, c-format -msgid "JSON-RPC call failed with status code: %li\n" -msgstr "" - -#: client/ipa-join.c:773 +#: client/ipa-join.c:760 #, c-format msgid "JSON-RPC call was unauthorized. Check your credentials.\n" msgstr "" -#: client/ipa-join.c:780 +#: client/ipa-join.c:762 +#, c-format +msgid "JSON-RPC call failed with status code: %li\n" +msgstr "" + +#: client/ipa-join.c:769 #, c-format msgid "" "JSON-RPC response:\n" "%s\n" msgstr "" -#: client/ipa-join.c:815 +#: client/ipa-join.c:804 #, c-format msgid "Extracting the error from the JSON-RPC response failed: %s\n" msgstr "" -#: client/ipa-join.c:848 +#: client/ipa-join.c:837 #, c-format msgid "Parsing JSON-RPC response failed: %s\n" msgstr "" -#: client/ipa-join.c:863 +#: client/ipa-join.c:852 #, c-format msgid "Parsing JSON-RPC response failed: no 'result' value found.\n" msgstr "" -#: client/ipa-join.c:895 client/ipa-join.c:986 +#: client/ipa-join.c:884 client/ipa-join.c:973 #, c-format msgid "Extracting the data from the JSON-RPC response failed: %s\n" msgstr "" -#: client/ipa-join.c:938 client/ipa-join.c:1016 +#: client/ipa-join.c:927 client/ipa-join.c:1003 #, c-format msgid "json_pack_ex() failed: %s\n" msgstr "" -#: client/ipa-join.c:1032 client/ipa-join.c:1111 +#: client/ipa-join.c:1019 client/ipa-join.c:1096 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: client/ipa-join.c:1035 client/ipa-join.c:1114 +#: client/ipa-join.c:1021 client/ipa-join.c:1098 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: client/ipa-join.c:1119 +#: client/ipa-join.c:1103 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: client/ipa-join.c:1161 client/ipa-join.c:1301 +#: client/ipa-join.c:1145 client/ipa-join.c:1287 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: client/ipa-join.c:1173 client/ipa-join.c:1311 +#: client/ipa-join.c:1157 client/ipa-join.c:1296 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: client/ipa-join.c:1180 +#: client/ipa-join.c:1164 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: client/ipa-join.c:1188 +#: client/ipa-join.c:1172 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not " "provided.\n" msgstr "" -#: client/ipa-join.c:1207 +#: client/ipa-join.c:1191 #, c-format msgid "fork() failed\n" msgstr "" -#: client/ipa-join.c:1236 +#: client/ipa-join.c:1223 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: client/ipa-join.c:1239 +#: client/ipa-join.c:1226 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: client/ipa-join.c:1242 +#: client/ipa-join.c:1229 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: client/ipa-join.c:1254 +#: client/ipa-join.c:1241 #, c-format msgid "child exited with %d\n" msgstr "" -#: client/ipa-join.c:1320 +#: client/ipa-join.c:1304 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: client/ipa-join.c:1329 +#: client/ipa-join.c:1312 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: client/ipa-join.c:1340 +#: client/ipa-join.c:1322 #, c-format msgid "Error parsing \"%1$s\": %2$s.\n" msgstr "" -#: client/ipa-join.c:1359 +#: client/ipa-join.c:1340 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: client/ipa-join.c:1371 client/ipa-join.c:1379 +#: client/ipa-join.c:1351 client/ipa-join.c:1358 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: client/ipa-join.c:1388 +#: client/ipa-join.c:1366 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: client/ipa-join.c:1444 +#: client/ipa-join.c:1422 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: client/ipa-join.c:1446 +#: client/ipa-join.c:1424 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: client/ipa-join.c:1448 +#: client/ipa-join.c:1426 msgid "Unenroll this host from IPA server" msgstr "" -#: client/ipa-join.c:1450 +#: client/ipa-join.c:1428 msgid "Hostname of this server" msgstr "" -#: client/ipa-join.c:1450 client/ipa-join.c:1452 +#: client/ipa-join.c:1428 client/ipa-join.c:1430 msgid "hostname" msgstr "" -#: client/ipa-join.c:1452 +#: client/ipa-join.c:1430 msgid "IPA Server to use" msgstr "" -#: client/ipa-join.c:1454 +#: client/ipa-join.c:1432 msgid "Specifies where to store keytab information." msgstr "" -#: client/ipa-join.c:1454 +#: client/ipa-join.c:1432 msgid "filename" msgstr "" -#: client/ipa-join.c:1456 +#: client/ipa-join.c:1434 msgid "Force the host join. Rejoin even if already joined." msgstr "" -#: client/ipa-join.c:1458 +#: client/ipa-join.c:1436 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: client/ipa-join.c:1458 +#: client/ipa-join.c:1436 msgid "password" msgstr "" -#: client/ipa-join.c:1460 +#: client/ipa-join.c:1438 msgid "LDAP basedn" msgstr "" -#: client/ipa-join.c:1460 +#: client/ipa-join.c:1438 msgid "basedn" msgstr "" -#: client/ipa-join.c:1494 +#: client/ipa-join.c:1471 #, c-format msgid "Cannot get host's FQDN!\n" msgstr "" -#: client/ipa-join.c:1500 +#: client/ipa-join.c:1476 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: client/ipa-join.c:1506 +#: client/ipa-join.c:1480 #, c-format msgid "The hostname must not be: %s\n" msgstr "" +#: ipaclient/plugins/automember.py:33 ipaserver/plugins/automember.py:342 +msgid "Failed to add" +msgstr "" + +#: ipaclient/plugins/ca.py:19 ipaclient/plugins/cert.py:39 +msgid "Write certificate (chain if --chain used) to file" +msgstr "" + +#: ipaclient/plugins/cert.py:107 +msgid "Unrevoked" +msgstr "" + +#: ipaclient/plugins/cert.py:110 ipaserver/plugins/internal.py:293 +msgid "Error" +msgstr "" + +#: ipaclient/plugins/cert.py:120 +msgid "Input filename" +msgstr "" + +#: ipaclient/plugins/cert.py:121 +msgid "File to load the certificate from." +msgstr "" + +#: ipaclient/plugins/cert.py:130 ipaclient/plugins/certmap.py:41 +msgid "cannot specify both raw certificate and file" +msgstr "" + +#: ipaclient/plugins/certmap.py:19 +msgid "Input file" +msgstr "" + +#: ipaclient/plugins/certmap.py:20 +msgid "File to load the certificate from" +msgstr "" + +#: ipaclient/plugins/certprofile.py:25 +#, python-format +msgid "Profile configuration stored in file '%(file)s'" +msgstr "" + +#: ipaclient/plugins/dns.py:137 ipaserver/plugins/dns.py:3576 +msgid "Split DNS record to parts" +msgstr "" + +#: ipaclient/plugins/dns.py:237 +msgid "Please choose a type of DNS resource record to be added" +msgstr "" + +#: ipaclient/plugins/dns.py:238 +#, python-format +msgid "The most common types for this type of zone are: %s\n" +msgstr "" + +#: ipaclient/plugins/dns.py:243 +msgid "DNS resource record type" +msgstr "" + +#: ipaclient/plugins/dns.py:261 +#, python-format +msgid "Invalid or unsupported type. Allowed values are: %s" +msgstr "" + +#: ipaclient/plugins/dns.py:286 +msgid "No option to modify specific record provided." +msgstr "" + +#: ipaclient/plugins/dns.py:289 ipaclient/plugins/dns.py:355 +msgid "Current DNS record contents:\n" +msgstr "" + +#: ipaclient/plugins/dns.py:312 +#, python-format +msgid "Modify %(name)s '%(value)s'?" +msgstr "" + +#: ipaclient/plugins/dns.py:321 +#, python-format +msgid "" +"%(count)d %(type)s record skipped. Only one value per DNS record type can be " +"modified at one time." +msgid_plural "" +"%(count)d %(type)s records skipped. Only one value per DNS record type can " +"be modified at one time." +msgstr[0] "" +msgstr[1] "" + +#: ipaclient/plugins/dns.py:329 ipaserver/plugins/dns.py:3876 +msgid "" +"Neither --del-all nor options to delete a specific record provided.\n" +"Command help may be consulted for all supported record types." +msgstr "" + +#: ipaclient/plugins/dns.py:347 +msgid "No option to delete specific record provided." +msgstr "" + +#: ipaclient/plugins/dns.py:348 +msgid "Delete all?" +msgstr "" + +#: ipaclient/plugins/dns.py:376 +#, python-format +msgid "Delete %(name)s '%(value)s'?" +msgstr "" + +#: ipaclient/plugins/dns.py:392 ipaclient/plugins/dns.py:409 +#: ipaclient/plugins/dns.py:421 +msgid "Server will check DNS forwarder(s)." +msgstr "" + +#: ipaclient/plugins/dns.py:394 ipaclient/plugins/dns.py:411 +#: ipaclient/plugins/dns.py:423 +msgid "This may take some time, please wait ..." +msgstr "" + +#: ipaclient/plugins/dns.py:403 +msgid "DNS forwarder" +msgstr "" + +#: ipaclient/plugins/dns.py:434 +msgid "file to store DNS records in nsupdate format" +msgstr "" + +#: ipaclient/plugins/host.py:41 ipaclient/plugins/service.py:43 +#: ipaclient/plugins/user.py:74 +#, python-format +msgid "Certificate(s) stored in file '%(file)s'" +msgstr "" + +#: ipaclient/plugins/location.py:23 +msgid "Servers details:" +msgstr "" + +#: ipaclient/plugins/migration.py:37 +msgid "" +"Migration mode is disabled.\n" +"Use 'ipa config-mod --enable-migration=TRUE' to enable it." +msgstr "" + +#: ipaclient/plugins/migration.py:41 +msgid "" +"Passwords have been migrated in pre-hashed format.\n" +"IPA is unable to generate Kerberos keys unless provided\n" +"with clear text passwords. All migrated users need to\n" +"login at https://your.domain/ipa/migration/ before they\n" +"can use their Kerberos accounts." +msgstr "" + +#: ipaclient/plugins/server.py:20 +#, python-format +msgid "Removing %(servers)s from replication topology, please wait..." +msgstr "" + +#: ipaclient/plugins/topology.py:25 +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" is in order." +msgstr "" + +#: ipaclient/plugins/topology.py:30 +#, python-format +msgid "Replication topology of suffix \"%(suffix)s\" contains errors." +msgstr "" + +#: ipaclient/plugins/topology.py:33 +msgid "Topology is disconnected" +msgstr "" + +#: ipaclient/plugins/topology.py:35 +#, python-format +msgid "Server %(srv)s can't contact servers: %(replicas)s" +msgstr "" + +#: ipaclient/plugins/topology.py:40 +msgid "Recommended maximum number of agreements per replica exceeded" +msgstr "" + +#: ipaclient/plugins/topology.py:43 +msgid "Maximum number of agreements per replica" +msgstr "" + +#: ipaclient/plugins/topology.py:47 +#, python-format +msgid "Server \"%(srv)s\" has %(n)d agreements with servers:" +msgstr "" + +#: ipaclient/plugins/user.py:40 +msgid "Delete a user, keeping the entry available for future use" +msgstr "" + +#: ipaclient/plugins/user.py:45 +msgid "Delete a user" +msgstr "" + +#: ipaclient/plugins/user.py:54 +msgid "preserve and no-preserve cannot be both set" +msgstr "" + +#: ipaclient/plugins/sudorule.py:30 +#, python-format +msgid "Enabled Sudo Rule \"%s\"" +msgstr "" + +#: ipaclient/plugins/sudorule.py:36 +#, python-format +msgid "Disabled Sudo Rule \"%s\"" +msgstr "" + +#: ipaclient/plugins/sudorule.py:44 +#, python-format +msgid "Added option \"%(option)s\" to Sudo Rule \"%(rule)s\"" +msgstr "" + +#: ipaclient/plugins/sudorule.py:57 +#, python-format +msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" +msgstr "" + +#: ipaclient/plugins/automount.py:101 +msgid "maps not connected to /etc/auto.master:" +msgstr "" + +#: ipaclient/plugins/automount.py:120 +msgid "Import automount files for a specific location." +msgstr "" + +#: ipaclient/plugins/automount.py:124 +msgid "Master file" +msgstr "" + +#: ipaclient/plugins/automount.py:125 +msgid "Automount master file." +msgstr "" + +#: ipaclient/plugins/automount.py:132 +msgid "" +"Continuous operation mode. Errors are reported but the process continues." +msgstr "" + +#: ipaclient/plugins/automount.py:150 +#, python-format +msgid "File %(file)s not found" +msgstr "" + +#: ipaclient/plugins/automount.py:200 +#, python-format +msgid "key %(key)s already exists" +msgstr "" + +#: ipaclient/plugins/automount.py:215 +#, python-format +msgid "map %(map)s already exists" +msgstr "" + +#: ipaclient/plugins/automount.py:264 +msgid "Imported maps:" +msgstr "" + +#: ipaclient/plugins/automount.py:267 +#, python-format +msgid "Added %(map)s" +msgstr "" + +#: ipaclient/plugins/automount.py:271 +msgid "Imported keys:" +msgstr "" + +#: ipaclient/plugins/automount.py:274 +#, python-format +msgid "Added %(src)s to %(dst)s" +msgstr "" + +#: ipaclient/plugins/automount.py:281 +msgid "Ignored keys:" +msgstr "" + +#: ipaclient/plugins/automount.py:284 +#, python-format +msgid "Ignored %(src)s to %(dst)s" +msgstr "" + +#: ipaclient/plugins/automount.py:292 +msgid "Duplicate maps skipped:" +msgstr "" + +#: ipaclient/plugins/automount.py:295 +#, python-format +msgid "Skipped %(map)s" +msgstr "" + +#: ipaclient/plugins/automount.py:301 +msgid "Duplicate keys skipped:" +msgstr "" + +#: ipaclient/plugins/automount.py:304 +#, python-format +msgid "Skipped %(key)s" +msgstr "" + +#: ipaclient/plugins/otptoken.py:66 +msgid "" +"Unable to display QR code using the configured output encoding. Please use " +"the token URI to configure your OTP device" +msgstr "" + +#: ipaclient/plugins/otptoken.py:82 +msgid "" +"QR code width is greater than that of the output tty. Please resize your " +"terminal." +msgstr "" + +#: ipaclient/plugins/otptoken.py:136 +msgid "Synchronize an OTP token." +msgstr "" + +#: ipaclient/plugins/otptoken.py:141 +msgid "User ID" +msgstr "" + +#: ipaclient/plugins/otptoken.py:142 ipaclient/remote_plugins/2_114/host.py:187 +#: ipaserver/plugins/internal.py:190 ipaserver/plugins/internal.py:408 +#: ipaserver/plugins/internal.py:1714 ipaserver/plugins/baseldap.py:50 +#: ipaserver/plugins/migration.py:534 +msgid "Password" +msgstr "" + +#: ipaclient/plugins/otptoken.py:143 +msgid "First Code" +msgstr "" + +#: ipaclient/plugins/otptoken.py:144 +msgid "Second Code" +msgstr "" + +#: ipaclient/plugins/otptoken.py:148 ipaserver/plugins/internal.py:1724 +msgid "Token ID" +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:35 +msgid "python-yubico is not installed." +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:40 +msgid "" +"\n" +"YubiKey Tokens\n" +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:42 +msgid "" +"\n" +"Manage YubiKey tokens.\n" +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:44 +msgid "" +"\n" +"This code is an extension to the otptoken plugin and provides support for\n" +"reading/writing YubiKey tokens directly.\n" +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:47 ipaserver/plugins/ca.py:35 +#: ipaserver/plugins/certmap.py:60 ipaserver/plugins/dnsserver.py:39 +#: ipaserver/plugins/host.py:104 ipaserver/plugins/location.py:37 +#: ipaserver/plugins/otptoken.py:49 ipaserver/plugins/radiusproxy.py:43 +#: ipaserver/plugins/serverrole.py:19 ipaserver/plugins/server.py:40 +#: ipaserver/plugins/automember.py:63 ipaserver/plugins/cert.py:99 +#: ipaserver/plugins/permission.py:97 ipaserver/plugins/schema.py:28 +#: ipaserver/plugins/sudorule.py:76 ipaserver/plugins/vault.py:88 +msgid "" +"\n" +"EXAMPLES:\n" +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:49 +msgid "" +"\n" +" Add a new token:\n" +" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:72 +msgid "Add a new YubiKey OTP token." +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:77 +msgid "YubiKey slot" +msgstr "" + +#: ipaclient/plugins/otptoken_yubikey.py:146 +msgid "No free YubiKey slot!" +msgstr "" + +#: ipaclient/plugins/vault.py:68 ipaclient/plugins/vault.py:874 +#, python-format +msgid "Cannot read file '%(filename)s': %(exc)s" +msgstr "" + +#: ipaclient/plugins/vault.py:75 +#, python-format +msgid "Cannot decode file '%(filename)s': %(exc)s" +msgstr "" + +#: ipaclient/plugins/vault.py:145 ipaclient/plugins/vault.py:164 +#: ipaserver/plugins/passwd.py:149 +msgid "Invalid credentials" +msgstr "" + +#: ipaclient/plugins/vault.py:182 +msgid "Create a new vault." +msgstr "" + +#: ipaclient/plugins/vault.py:188 ipaclient/plugins/vault.py:769 +#: ipaclient/plugins/vault.py:1011 +msgid "Vault password" +msgstr "" + +#: ipaclient/plugins/vault.py:193 ipaclient/plugins/vault.py:774 +#: ipaclient/plugins/vault.py:1016 +msgid "File containing the vault password" +msgstr "" + +#: ipaclient/plugins/vault.py:198 +msgid "File containing the vault public key" +msgstr "" + +#: ipaclient/plugins/vault.py:258 +msgid "Password can be specified only for symmetric vault" +msgstr "" + +#: ipaclient/plugins/vault.py:264 +msgid "Public key can be specified only for asymmetric vault" +msgstr "" + +#: ipaclient/plugins/vault.py:284 ipaclient/plugins/vault.py:907 +#: ipaclient/plugins/vault.py:1153 +msgid "Password specified multiple times" +msgstr "" + +#: ipaclient/plugins/vault.py:307 +msgid "Public key specified multiple times" +msgstr "" + +#: ipaclient/plugins/vault.py:323 +msgid "Missing vault public key" +msgstr "" + +#: ipaclient/plugins/vault.py:335 +#, python-format +msgid "Invalid or unsupported vault public key: %s" +msgstr "" + +#: ipaclient/plugins/vault.py:369 ipaserver/plugins/vault.py:933 +msgid "Modify a vault." +msgstr "" + +#: ipaclient/plugins/vault.py:374 ipaserver/plugins/internal.py:1731 +msgid "Change password" +msgstr "" + +#: ipaclient/plugins/vault.py:379 +msgid "Old vault password" +msgstr "" + +#: ipaclient/plugins/vault.py:384 +msgid "File containing the old vault password" +msgstr "" + +#: ipaclient/plugins/vault.py:389 +msgid "New vault password" +msgstr "" + +#: ipaclient/plugins/vault.py:394 +msgid "File containing the new vault password" +msgstr "" + +#: ipaclient/plugins/vault.py:399 +msgid "Old vault private key" +msgstr "" + +#: ipaclient/plugins/vault.py:404 +msgid "File containing the old vault private key" +msgstr "" + +#: ipaclient/plugins/vault.py:409 +msgid "File containing the new vault public key" +msgstr "" + +#: ipaclient/plugins/vault.py:515 +msgid "New public key specified multiple times" +msgstr "" + +#: ipaclient/plugins/vault.py:528 +msgid "Missing new vault public key" +msgstr "" + +#: ipaclient/plugins/vault.py:660 ipaserver/plugins/vault.py:659 +#, python-brace-format +msgid "{algo} is not a supported vault wrapping algorithm" +msgstr "" + +#: ipaclient/plugins/vault.py:755 ipaserver/plugins/vault.py:1033 +msgid "Archive data into a vault." +msgstr "" + +#: ipaclient/plugins/vault.py:760 +msgid "Binary data to archive" +msgstr "" + +#: ipaclient/plugins/vault.py:764 +msgid "File containing data to archive" +msgstr "" + +#: ipaclient/plugins/vault.py:778 +msgid "Override existing password" +msgstr "" + +#: ipaclient/plugins/vault.py:860 +msgid "Input data specified multiple times" +msgstr "" + +#: ipaclient/plugins/vault.py:865 ipaclient/plugins/vault.py:878 +#, python-format +msgid "" +"Size of data exceeds the limit. Current vault data size limit is %(limit)d B" +msgstr "" + +#: ipaclient/plugins/vault.py:961 ipaclient/plugins/vault.py:1203 +msgid "Invalid vault type" +msgstr "" + +#: ipaclient/plugins/vault.py:1001 +msgid "Retrieve a data from a vault." +msgstr "" + +#: ipaclient/plugins/vault.py:1006 +msgid "File to store retrieved data" +msgstr "" + +#: ipaclient/plugins/vault.py:1021 +msgid "Vault private key" +msgstr "" + +#: ipaclient/plugins/vault.py:1026 +msgid "File containing the vault private key" +msgstr "" + +#: ipaclient/plugins/vault.py:1033 ipaserver/plugins/internal.py:757 +msgid "Data" +msgstr "" + +#: ipaclient/plugins/vault.py:1179 +msgid "Private key specified multiple times" +msgstr "" + +#: ipaclient/plugins/vault.py:1192 +msgid "Missing vault private key" +msgstr "" + msgid "" "\n" "Directory Server Access Control Instructions (ACIs)\n" @@ -998,9 +1557,9 @@ msgstr "" msgid "User group ACI grants access to" msgstr "" -#: ipaserver/plugins/delegation.py:81 ipaserver/plugins/aci.py:463 -#: ipaserver/plugins/permission.py:230 ipaserver/plugins/selfservice.py:84 -#: ipaserver/plugins/baseldap.py:74 +#: ipaserver/plugins/delegation.py:81 ipaserver/plugins/selfservice.py:84 +#: ipaserver/plugins/aci.py:463 ipaserver/plugins/baseldap.py:74 +#: ipaserver/plugins/permission.py:230 msgid "Permissions" msgstr "" @@ -1010,13 +1569,14 @@ msgstr "" msgid "Attributes to which the permission applies" msgstr "" -#: ipaserver/plugins/delegation.py:86 ipaserver/plugins/aci.py:472 -#: ipaserver/plugins/selfservice.py:89 +#: ipaserver/plugins/delegation.py:86 ipaserver/plugins/selfservice.py:89 +#: ipaserver/plugins/aci.py:472 msgid "Attributes" msgstr "" -#: ipaserver/plugins/permission.py:346 ipaserver/plugins/otptoken.py:165 -#: ipaserver/plugins/schema.py:448 ipaserver/plugins/vault.py:600 +#: ipaserver/plugins/otptoken.py:165 ipaserver/plugins/aci.py:477 +#: ipaserver/plugins/permission.py:346 ipaserver/plugins/schema.py:448 +#: ipaserver/plugins/vault.py:598 msgid "Type" msgstr "" @@ -1030,7 +1590,7 @@ msgid "Member of a group" msgstr "" #: ipaserver/plugins/internal.py:216 ipaserver/plugins/internal.py:1214 -#: ipaserver/plugins/internal.py:1743 +#: ipaserver/plugins/internal.py:1743 ipaserver/plugins/aci.py:490 msgid "Filter" msgstr "" @@ -1116,7 +1676,8 @@ msgstr "" msgid "A string searched in all relevant object attributes" msgstr "" -#: ipaserver/plugins/schema.py:121 ipaserver/plugins/baseldap.py:1956 +#: ipaserver/plugins/baseldap.py:1960 ipaserver/plugins/cert.py:1569 +#: ipaserver/plugins/schema.py:121 msgid "Primary key only" msgstr "" @@ -1144,6 +1705,290 @@ msgstr "" msgid "Location of the ACI" msgstr "" +msgid "" +"\n" +"Auto Membership Rule.\n" +"\n" +"Bring clarity to the membership of hosts and users by configuring inclusive\n" +"or exclusive regex patterns, you can automatically assign a new entries " +"into\n" +"a group or hostgroup based upon attribute information.\n" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup.\n" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +"\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +"\n" +"The automember-rebuild command can be used to retroactively run automember " +"rules\n" +"against existing entries, thus rebuilding their membership.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +"\n" +" Add the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-" +"regex=^uid=mscott devel\n" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +"\n" +" Set the default (fallback) target group:\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +"\n" +" Remove the default (fallback) target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +"\n" +" Show the default (fallback) target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +"\n" +" Rebuild membership for all users:\n" +" ipa automember-rebuild --type=group\n" +"\n" +" Rebuild membership for all hosts:\n" +" ipa automember-rebuild --type=hostgroup\n" +"\n" +" Rebuild membership for specified users:\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" +"\n" +" Rebuild membership for specified hosts:\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" +msgstr "" + +#: ipaserver/plugins/automount.py:364 ipaserver/plugins/ca.py:89 +#: ipaserver/plugins/caacl.py:175 ipaserver/plugins/certmap.py:279 +#: ipaserver/plugins/group.py:342 ipaserver/plugins/hbacrule.py:253 +#: ipaserver/plugins/hbacsvc.py:108 ipaserver/plugins/hbacsvcgroup.py:120 +#: ipaserver/plugins/host.py:473 ipaserver/plugins/hostgroup.py:193 +#: ipaserver/plugins/location.py:111 ipaserver/plugins/netgroup.py:210 +#: ipaserver/plugins/otptoken.py:174 ipaserver/plugins/radiusproxy.py:117 +#: ipaserver/plugins/role.py:153 ipaserver/plugins/selinuxusermap.py:265 +#: ipaserver/plugins/subid.py:143 ipaserver/plugins/sudocmd.py:128 +#: ipaserver/plugins/sudocmdgroup.py:130 ipaserver/plugins/automember.py:257 +#: ipaserver/plugins/idviews.py:142 ipaserver/plugins/idviews.py:776 +#: ipaserver/plugins/privilege.py:159 ipaserver/plugins/sudorule.py:247 +#: ipaserver/plugins/vault.py:592 +msgid "Description" +msgstr "" + +#: ipaserver/plugins/automember.py:258 +msgid "A description of this auto member rule" +msgstr "" + +#: ipaserver/plugins/automember.py:262 ipaserver/plugins/automember.py:585 +msgid "Default (fallback) Group" +msgstr "" + +#: ipaserver/plugins/automember.py:263 +msgid "Default group for entries to land" +msgstr "" + +msgid "Add an automember rule." +msgstr "" + +#: ipaserver/plugins/automember.py:249 ipaserver/plugins/automember.py:250 +msgid "Automember Rule" +msgstr "" + +#: ipaserver/plugins/baseldap.py:977 +msgid "" +"Set an attribute to a name/value pair. Format is attr=value.\n" +"For multi-valued attributes, the command replaces the values already present." +msgstr "" + +#: ipaserver/plugins/baseldap.py:983 +msgid "" +"Add an attribute/value pair. Format is attr=value. The attribute\n" +"must be part of the schema." +msgstr "" + +#: ipaserver/plugins/automember.py:184 +msgid "Grouping Type" +msgstr "" + +#: ipaserver/plugins/automember.py:185 +msgid "Grouping to which the rule applies" +msgstr "" + +msgid "Add conditions to an automember rule." +msgstr "" + +#: ipaserver/plugins/automember.py:160 ipaserver/plugins/automember.py:161 +msgid "Inclusive Regex" +msgstr "" + +#: ipaserver/plugins/automember.py:167 ipaserver/plugins/automember.py:168 +msgid "Exclusive Regex" +msgstr "" + +#: ipaserver/plugins/automember.py:176 +msgid "Attribute Key" +msgstr "" + +#: ipaserver/plugins/automember.py:177 +msgid "" +"Attribute to filter via regex. For example fqdn for a host, or manager for a " +"user" +msgstr "" + +#: ipaserver/plugins/automember.py:357 +msgid "Conditions that could not be added" +msgstr "" + +#: ipaserver/plugins/automember.py:361 +msgid "Number of conditions added" +msgstr "" + +msgid "Remove default (fallback) group for all unmatched entries." +msgstr "" + +msgid "Set default (fallback) group for all unmatched entries." +msgstr "" + +#: ipaserver/plugins/automember.py:586 +msgid "Default (fallback) group for entries to land" +msgstr "" + +msgid "Display information about the default (fallback) automember groups." +msgstr "" + +msgid "Delete an automember rule." +msgstr "" + +#: ipalib/output.py:204 +msgid "List of deletions that failed" +msgstr "" + +msgid "Search for automember rules." +msgstr "" + +msgid "Modify an automember rule." +msgstr "" + +#: ipaserver/plugins/baseldap.py:989 +msgid "" +"Delete an attribute/value pair. The option will be evaluated\n" +"last, after all sets and adds." +msgstr "" + +#: ipaserver/plugins/baseldap.py:1402 ipaserver/plugins/baseldap.py:1477 +msgid "Rights" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1403 ipaserver/plugins/baseldap.py:1478 +msgid "" +"Display the access rights of this entry (requires --all). See ipa man page " +"for details." +msgstr "" + +#: ipaserver/plugins/automember.py:683 +msgid "Rebuild auto membership." +msgstr "" + +#: ipaserver/plugins/automember.py:693 +msgid "Rebuild membership for all members of a grouping" +msgstr "" + +#: ipaserver/plugins/baseuser.py:198 ipaserver/plugins/caacl.py:220 +#: ipaserver/plugins/hbacrule.py:260 ipaserver/plugins/internal.py:1189 +#: ipaserver/plugins/selinuxusermap.py:272 ipaserver/plugins/user.py:161 +#: ipaserver/plugins/automember.py:697 ipaserver/plugins/sudorule.py:291 +msgid "Users" +msgstr "" + +#: ipaserver/plugins/automember.py:698 +msgid "Rebuild membership for specified users" +msgstr "" + +#: ipaserver/plugins/hbacrule.py:268 ipaserver/plugins/host.py:461 +#: ipaserver/plugins/internal.py:1163 ipaserver/plugins/selinuxusermap.py:280 +#: ipaserver/plugins/automember.py:702 ipaserver/plugins/sudorule.py:304 +msgid "Hosts" +msgstr "" + +#: ipaserver/plugins/automember.py:703 +msgid "Rebuild membership for specified hosts" +msgstr "" + +#: ipaserver/plugins/automember.py:708 +msgid "No wait" +msgstr "" + +#: ipaserver/plugins/automember.py:709 +msgid "Don't wait for rebuilding membership" +msgstr "" + +msgid "Remove conditions from an automember rule." +msgstr "" + +#: ipaserver/plugins/automember.py:441 +msgid "Conditions that could not be removed" +msgstr "" + +#: ipaserver/plugins/automember.py:445 +msgid "Number of conditions removed" +msgstr "" + +msgid "Display information about an automember rule." +msgstr "" + #: ipaserver/plugins/automount.py:41 msgid "" "\n" @@ -1252,8 +2097,8 @@ msgid "" " ipa automountkey-del baltimore auto.share --key=man\n" msgstr "" -#: ipaserver/plugins/otptoken.py:219 ipaserver/plugins/automount.py:465 -#: ipaserver/plugins/automount.py:712 ipaserver/plugins/automount.py:819 +#: ipaserver/plugins/automount.py:465 ipaserver/plugins/automount.py:712 +#: ipaserver/plugins/automount.py:819 ipaserver/plugins/otptoken.py:219 msgid "Key" msgstr "" @@ -1271,7 +2116,7 @@ msgstr "" msgid "description" msgstr "" -#: ipaserver/plugins/host.py:483 ipaserver/plugins/automount.py:252 +#: ipaserver/plugins/host.py:483 ipaserver/plugins/server.py:132 msgid "Location" msgstr "" @@ -1287,64 +2132,32 @@ msgstr "" msgid "Automount map name." msgstr "" -#: ipaserver/plugins/hbacsvcgroup.py:120 ipaserver/plugins/automember.py:257 -#: ipaserver/plugins/radiusproxy.py:117 ipaserver/plugins/ca.py:89 -#: ipaserver/plugins/sudocmdgroup.py:130 ipaserver/plugins/group.py:342 -#: ipaserver/plugins/privilege.py:159 ipaserver/plugins/role.py:153 -#: ipaserver/plugins/hbacrule.py:253 ipaserver/plugins/hostgroup.py:193 -#: ipaserver/plugins/host.py:473 ipaserver/plugins/otptoken.py:174 -#: ipaserver/plugins/idviews.py:142 ipaserver/plugins/idviews.py:775 -#: ipaserver/plugins/automount.py:364 ipaserver/plugins/location.py:111 -#: ipaserver/plugins/subid.py:143 ipaserver/plugins/caacl.py:175 -#: ipaserver/plugins/hbacsvc.py:108 ipaserver/plugins/selinuxusermap.py:265 -#: ipaserver/plugins/netgroup.py:210 ipaserver/plugins/sudocmd.py:128 -#: ipaserver/plugins/sudorule.py:247 ipaserver/plugins/certmap.py:279 -#: ipaserver/plugins/vault.py:594 -msgid "Description" -msgstr "" - #: ipaserver/plugins/automount.py:623 msgid "Create a new automount key." msgstr "" -#: ipaserver/plugins/baseldap.py:977 -msgid "" -"Set an attribute to a name/value pair. Format is attr=value.\n" -"For multi-valued attributes, the command replaces the values already present." -msgstr "" - -#: ipaserver/plugins/baseldap.py:983 -msgid "" -"Add an attribute/value pair. Format is attr=value. The attribute\n" -"must be part of the schema." -msgstr "" - #: ipaserver/plugins/automount.py:705 msgid "Delete an automount key." msgstr "" -#: ipaserver/plugins/baseldap.py:1377 +#: ipaserver/plugins/baseldap.py:1381 msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/output.py:204 -msgid "List of deletions that failed" -msgstr "" - #: ipaserver/plugins/automount.py:804 msgid "Search for an automount key." msgstr "" -#: ipaserver/plugins/pkinit.py:71 ipaserver/plugins/baseldap.py:1975 -#: ipaserver/plugins/serverrole.py:123 +#: ipaserver/plugins/serverrole.py:123 ipaserver/plugins/baseldap.py:1979 +#: ipaserver/plugins/cert.py:1574 msgid "Time Limit" msgstr "" msgid "Time limit of search in seconds" msgstr "" -#: ipaserver/plugins/pkinit.py:79 ipaserver/plugins/hbactest.py:304 -#: ipaserver/plugins/baseldap.py:1982 ipaserver/plugins/serverrole.py:131 +#: ipaserver/plugins/serverrole.py:131 ipaserver/plugins/baseldap.py:1986 +#: ipaserver/plugins/cert.py:1579 ipaserver/plugins/hbactest.py:304 msgid "Size Limit" msgstr "" @@ -1355,27 +2168,11 @@ msgstr "" msgid "Modify an automount key." msgstr "" -#: ipaserver/plugins/baseldap.py:989 -msgid "" -"Delete an attribute/value pair. The option will be evaluated\n" -"last, after all sets and adds." -msgstr "" - -#: ipaserver/plugins/baseldap.py:1398 ipaserver/plugins/baseldap.py:1473 -msgid "Rights" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1399 ipaserver/plugins/baseldap.py:1474 -msgid "" -"Display the access rights of this entry (requires --all). See ipa man page " -"for details." -msgstr "" - #: ipaserver/plugins/automount.py:755 msgid "New mount information" msgstr "" -#: ipaserver/plugins/baseldap.py:1483 +#: ipaserver/plugins/baseldap.py:1487 msgid "Rename" msgstr "" @@ -1482,6 +2279,184 @@ msgstr "" msgid "Nested Methods to execute" msgstr "" +msgid "" +"\n" +"IPA certificate operations\n" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request " +"(CSR)\n" +"in PEM format.\n" +"\n" +"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" +"subject to values configured in the server.\n" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +"\n" +"In order to request a certificate:\n" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add " +"it)\n" +"\n" +"SEARCHING:\n" +"\n" +"Certificates may be searched on by certificate subject, serial number,\n" +"revocation reason, validity dates and the issued date.\n" +"\n" +"When searching on dates the _from date does a >= search and the _to date\n" +"does a <= search. When combined these are done as an AND.\n" +"\n" +"Dates are treated as GMT to match the dates in the certificates.\n" +"\n" +"The date format is YYYY-mm-dd.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +"\n" +" Search for certificates by hostname:\n" +" ipa cert-find --subject=ipaserver.example.com\n" +"\n" +" Search for revoked certificates by reason:\n" +" ipa cert-find --revocation-reason=5\n" +"\n" +" Search for certificates based on issuance date\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +"\n" +"The following revocation reasons are supported:\n" +"\n" +" * 0 - unspecified\n" +" * 1 - keyCompromise\n" +" * 2 - cACompromise\n" +" * 3 - affiliationChanged\n" +" * 4 - superseded\n" +" * 5 - cessationOfOperation\n" +" * 6 - certificateHold\n" +" * 8 - removeFromCRL\n" +" * 9 - privilegeWithdrawn\n" +" * 10 - aACompromise\n" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +msgstr "" + +msgid "Checks if any of the servers has the CA service enabled." +msgstr "" + +msgid "Search for existing certificates." +msgstr "" + +msgid "Match cn attribute in subject" +msgstr "" + +msgid "Reason" +msgstr "" + +msgid "Reason for revoking the certificate (0-10)" +msgstr "" + +msgid "minimum serial number" +msgstr "" + +msgid "maximum serial number" +msgstr "" + +msgid "match the common name exactly" +msgstr "" + +msgid "Valid not after from this date (YYYY-mm-dd)" +msgstr "" + +msgid "Valid not after to this date (YYYY-mm-dd)" +msgstr "" + +msgid "Valid not before from this date (YYYY-mm-dd)" +msgstr "" + +msgid "Valid not before to this date (YYYY-mm-dd)" +msgstr "" + +msgid "Issued on from this date (YYYY-mm-dd)" +msgstr "" + +msgid "Issued on to this date (YYYY-mm-dd)" +msgstr "" + +msgid "Revoked on from this date (YYYY-mm-dd)" +msgstr "" + +msgid "Revoked on to this date (YYYY-mm-dd)" +msgstr "" + +msgid "Maximum number of certs returned" +msgstr "" + +msgid "Take a revoked certificate off hold." +msgstr "" + +msgid "Serial number" +msgstr "" + +msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" +msgstr "" + +msgid "Submit a certificate signing request." +msgstr "" + +msgid "CSR" +msgstr "" + +msgid "Principal" +msgstr "" + +msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "" + +msgid "automatically add the principal if it doesn't exist" +msgstr "" + +msgid "Dictionary mapping variable name to value" +msgstr "" + +msgid "Revoke a certificate." +msgstr "" + +msgid "Retrieve an existing certificate." +msgstr "" + +msgid "Output filename" +msgstr "" + +msgid "File to store the certificate in." +msgstr "" + +msgid "Check the status of a certificate signing request." +msgstr "" + +msgid "Request id" +msgstr "" + msgid "" "\n" "Server configuration\n" @@ -1976,7 +2951,7 @@ msgid "" "standard format \"IP_ADDRESS port PORT\"" msgstr "" -#: ipaserver/plugins/dns.py:4124 ipaserver/plugins/dnsserver.py:136 +#: ipaserver/plugins/dns.py:2049 ipaserver/plugins/dns.py:4124 msgid "Forward policy" msgstr "" @@ -2054,7 +3029,7 @@ msgstr "" msgid "A IP Address" msgstr "" -#: ipaserver/plugins/dns.py:983 ipaserver/plugins/host.py:680 +#: ipaserver/plugins/dns.py:960 ipaserver/plugins/dns.py:983 msgid "IP Address" msgstr "" @@ -2133,8 +3108,8 @@ msgstr "" msgid "CERT Algorithm" msgstr "" -#: ipaserver/plugins/dns.py:1063 ipaserver/plugins/dns.py:1412 -#: ipaserver/plugins/otptoken.py:229 +#: ipaserver/plugins/dns.py:1020 ipaserver/plugins/dns.py:1063 +#: ipaserver/plugins/dns.py:1412 msgid "Algorithm" msgstr "" @@ -2195,7 +3170,7 @@ msgstr "" msgid "DNAME Target" msgstr "" -#: ipaserver/plugins/dns.py:1379 ipaserver/plugins/internal.py:1217 +#: ipaserver/plugins/dns.py:1048 ipaserver/plugins/dns.py:1379 msgid "Target" msgstr "" @@ -2381,8 +3356,9 @@ msgstr "" msgid "NAPTR Service" msgstr "" -#: ipaserver/plugins/hbactest.py:285 ipaserver/plugins/service.py:494 #: ipaserver/plugins/internal.py:1332 ipaserver/plugins/internal.py:1676 +#: ipaserver/plugins/service.py:494 ipaserver/plugins/dns.py:1324 +#: ipaserver/plugins/hbactest.py:285 msgid "Service" msgstr "" @@ -2464,7 +3440,7 @@ msgstr "" msgid "SRV Priority" msgstr "" -#: ipaserver/plugins/pwpolicy.py:341 ipaserver/plugins/certmap.py:304 +#: ipaserver/plugins/certmap.py:304 ipaserver/plugins/pwpolicy.py:341 msgid "Priority" msgstr "" @@ -2702,9 +3678,9 @@ msgstr "" msgid "Add new DNS resource record." msgstr "" -#: ipaserver/plugins/dns.py:3597 ipaserver/plugins/permission.py:1061 -#: ipaserver/plugins/host.py:672 ipaserver/plugins/service.py:655 -#: ipaserver/plugins/realmdomains.py:151 +#: ipaserver/plugins/realmdomains.py:151 ipaserver/plugins/service.py:655 +#: ipaserver/plugins/dns.py:2898 ipaserver/plugins/dns.py:3597 +#: ipaserver/plugins/permission.py:1061 msgid "Force" msgstr "" @@ -2778,6 +3754,322 @@ msgstr "" msgid "Display information about a DNS zone (SOA record)." msgstr "" +msgid "" +"\n" +"Groups of users\n" +"\n" +"Manage groups of users. By default, new groups are POSIX groups. You\n" +"can add the --nonposix option to the group-add command to mark a new group\n" +"as non-POSIX. You can use the --posix argument with the group-mod command\n" +"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" +"converted to non-POSIX groups.\n" +"\n" +"Every group must have a description.\n" +"\n" +"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" +"supported but can have an impact on your file permissions. It is not " +"necessary\n" +"to supply a GID when creating a group. IPA will generate one automatically\n" +"if it is not provided.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new group:\n" +" ipa group-add --desc='local administrators' localadmins\n" +"\n" +" Add a new non-POSIX group:\n" +" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" +"\n" +" Convert a non-POSIX group to posix:\n" +" ipa group-mod --posix remoteadmins\n" +"\n" +" Add a new POSIX group with a specific Group ID number:\n" +" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" +"\n" +" Add a new POSIX group and let IPA assign a Group ID number:\n" +" ipa group-add --desc='printer admins' printeradmins\n" +"\n" +" Remove a group:\n" +" ipa group-del unixadmins\n" +"\n" +" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" +" ipa group-add-member --groups=remoteadmins localadmins\n" +"\n" +" Add multiple users to the \"localadmins\" group:\n" +" ipa group-add-member --users=test1 --users=test2 localadmins\n" +"\n" +" Remove a user from the \"localadmins\" group:\n" +" ipa group-remove-member --users=test2 localadmins\n" +"\n" +" Display information about a named group.\n" +" ipa group-show localadmins\n" +"\n" +"External group membership is designed to allow users from trusted domains\n" +"to be mapped to local POSIX groups in order to actually use IPA resources.\n" +"External members should be added to groups that specifically created as\n" +"external and non-POSIX. Such group later should be included into one of " +"POSIX\n" +"groups.\n" +"\n" +"An external group member is currently a Security Identifier (SID) as defined " +"by\n" +"the trusted domain. When adding external group members, it is possible to\n" +"specify them in either SID, or DOM\\name, or name@domain format. IPA will " +"attempt\n" +"to resolve passed name to SID with the use of Global Catalog of the trusted " +"domain.\n" +"\n" +"Example:\n" +"\n" +"1. Create group for the trusted domain admins' mapping and their local POSIX " +"group:\n" +"\n" +" ipa group-add --desc=' admins external map' ad_admins_external " +"--external\n" +" ipa group-add --desc=' admins' ad_admins\n" +"\n" +"2. Add security identifier of Domain Admins of the to the " +"ad_admins_external\n" +" group:\n" +"\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" +"\n" +"3. Allow members of ad_admins_external group to be associated with ad_admins " +"POSIX group:\n" +"\n" +" ipa group-add-member ad_admins --groups ad_admins_external\n" +"\n" +"4. List members of external members of ad_admins_external group to see their " +"SIDs:\n" +"\n" +" ipa group-show ad_admins_external\n" +msgstr "" + +#: ipaserver/plugins/idviews.py:1123 +msgid "Group name" +msgstr "" + +#: ipaserver/plugins/group.py:343 ipaserver/plugins/sudocmdgroup.py:131 +msgid "Group description" +msgstr "" + +#: ipaserver/plugins/group.py:347 ipaserver/plugins/idviews.py:1033 +#: ipaserver/plugins/idviews.py:1128 +msgid "GID" +msgstr "" + +msgid "GID (use this option to set it manually)" +msgstr "" + +msgid "Member users" +msgstr "" + +msgid "Member groups" +msgstr "" + +msgid "Member of groups" +msgstr "" + +#: ipaserver/plugins/baseldap.py:80 +msgid "Roles" +msgstr "" + +msgid "Member of netgroups" +msgstr "" + +msgid "Member of Sudo rule" +msgstr "" + +msgid "Member of HBAC rule" +msgstr "" + +msgid "Indirect Member users" +msgstr "" + +msgid "Indirect Member groups" +msgstr "" + +msgid "Indirect Member of group" +msgstr "" + +msgid "Indirect Member of netgroup" +msgstr "" + +msgid "Indirect Member of role" +msgstr "" + +msgid "Indirect Member of Sudo rule" +msgstr "" + +msgid "Indirect Member of HBAC rule" +msgstr "" + +msgid "Create a new group." +msgstr "" + +msgid "Create as a non-POSIX group" +msgstr "" + +msgid "Allow adding external non-IPA members from trusted domains" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1227 ipaserver/plugins/cert.py:1344 +msgid "Suppress processing of membership attributes." +msgstr "" + +msgid "Add members to a group." +msgstr "" + +msgid "External member" +msgstr "" + +msgid "Members of a trusted domain in DOM\\name or name@domain form" +msgstr "" + +msgid "member user" +msgstr "" + +msgid "users to add" +msgstr "" + +msgid "member group" +msgstr "" + +msgid "groups to add" +msgstr "" + +#: ipaserver/plugins/role.py:255 ipaserver/plugins/baseldap.py:1770 +#: ipaserver/plugins/baseldap.py:2257 ipaserver/plugins/privilege.py:226 +#: ipaserver/plugins/privilege.py:257 +msgid "Members that could not be added" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1774 ipaserver/plugins/baseldap.py:2261 +msgid "Number of members added" +msgstr "" + +msgid "Delete group." +msgstr "" + +msgid "Detach a managed group from a user." +msgstr "" + +msgid "Search for groups." +msgstr "" + +msgid "search for private groups" +msgstr "" + +msgid "search for POSIX groups" +msgstr "" + +msgid "" +"search for groups with support of external non-IPA members from trusted " +"domains" +msgstr "" + +msgid "search for non-POSIX groups" +msgstr "" + +msgid "Results should contain primary key attribute only (\"group-name\")" +msgstr "" + +#: ipaserver/plugins/cert.py:1026 ipaserver/plugins/sudorule.py:442 +msgid "user" +msgstr "" + +msgid "Search for groups with these member users." +msgstr "" + +msgid "Search for groups without these member users." +msgstr "" + +#: ipaserver/plugins/group.py:417 ipaserver/plugins/group.py:678 +#: ipaserver/plugins/user.py:151 +msgid "group" +msgstr "" + +msgid "Search for groups with these member groups." +msgstr "" + +msgid "Search for groups without these member groups." +msgstr "" + +msgid "Search for groups with these member of groups." +msgstr "" + +msgid "Search for groups without these member of groups." +msgstr "" + +msgid "netgroup" +msgstr "" + +msgid "Search for groups with these member of netgroups." +msgstr "" + +msgid "Search for groups without these member of netgroups." +msgstr "" + +#: ipaserver/plugins/serverrole.py:185 +msgid "role" +msgstr "" + +msgid "Search for groups with these member of roles." +msgstr "" + +msgid "Search for groups without these member of roles." +msgstr "" + +msgid "HBAC rule" +msgstr "" + +msgid "Search for groups with these member of HBAC rules." +msgstr "" + +msgid "Search for groups without these member of HBAC rules." +msgstr "" + +msgid "sudo rule" +msgstr "" + +msgid "Search for groups with these member of sudo rules." +msgstr "" + +msgid "Search for groups without these member of sudo rules." +msgstr "" + +msgid "Modify a group." +msgstr "" + +msgid "change to a POSIX group" +msgstr "" + +msgid "change to support external non-IPA members from trusted domains" +msgstr "" + +msgid "Rename the group object" +msgstr "" + +msgid "Remove members from a group." +msgstr "" + +msgid "users to remove" +msgstr "" + +msgid "groups to remove" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1868 ipaserver/plugins/baseldap.py:2356 +msgid "Members that could not be removed" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1872 ipaserver/plugins/baseldap.py:2360 +msgid "Number of members removed" +msgstr "" + +msgid "Display information about a named group." +msgstr "" + #: ipaserver/plugins/hbacrule.py:39 msgid "" "\n" @@ -2829,8 +4121,8 @@ msgid "" " ipa hbacrule-del allow_server\n" msgstr "" -#: ipaserver/plugins/hbacrule.py:207 ipaserver/plugins/selinuxusermap.py:239 -#: ipaserver/plugins/sudorule.py:242 ipaserver/plugins/certmap.py:273 +#: ipaserver/plugins/certmap.py:273 ipaserver/plugins/hbacrule.py:207 +#: ipaserver/plugins/selinuxusermap.py:239 ipaserver/plugins/sudorule.py:242 msgid "Rule name" msgstr "" @@ -2842,29 +4134,28 @@ msgstr "" msgid "Rule type (allow)" msgstr "" -#: ipaserver/plugins/hbacrule.py:223 ipaserver/plugins/caacl.py:195 -#: ipaserver/plugins/selinuxusermap.py:253 ipaserver/plugins/netgroup.py:227 -#: ipaserver/plugins/sudorule.py:255 +#: ipaserver/plugins/hbacrule.py:223 ipaserver/plugins/netgroup.py:227 +#: ipaserver/plugins/selinuxusermap.py:253 ipaserver/plugins/sudorule.py:255 msgid "User category" msgstr "" -#: ipaserver/plugins/hbacrule.py:224 ipaserver/plugins/selinuxusermap.py:254 -#: ipaserver/plugins/netgroup.py:228 ipaserver/plugins/sudorule.py:256 +#: ipaserver/plugins/hbacrule.py:224 ipaserver/plugins/netgroup.py:228 +#: ipaserver/plugins/selinuxusermap.py:254 ipaserver/plugins/sudorule.py:256 msgid "User category the rule applies to" msgstr "" -#: ipaserver/plugins/hbacrule.py:229 ipaserver/plugins/caacl.py:201 -#: ipaserver/plugins/selinuxusermap.py:259 ipaserver/plugins/netgroup.py:233 +#: ipaserver/plugins/caacl.py:201 ipaserver/plugins/hbacrule.py:229 +#: ipaserver/plugins/netgroup.py:233 ipaserver/plugins/selinuxusermap.py:259 #: ipaserver/plugins/sudorule.py:261 msgid "Host category" msgstr "" -#: ipaserver/plugins/hbacrule.py:230 ipaserver/plugins/selinuxusermap.py:260 -#: ipaserver/plugins/netgroup.py:234 ipaserver/plugins/sudorule.py:262 +#: ipaserver/plugins/hbacrule.py:230 ipaserver/plugins/netgroup.py:234 +#: ipaserver/plugins/selinuxusermap.py:260 ipaserver/plugins/sudorule.py:262 msgid "Host category the rule applies to" msgstr "" -#: ipaserver/plugins/hbacrule.py:243 ipaserver/plugins/caacl.py:207 +#: ipaserver/plugins/hbacrule.py:243 msgid "Service category" msgstr "" @@ -2872,41 +4163,25 @@ msgstr "" msgid "Service category the rule applies to" msgstr "" -#: ipaserver/plugins/hbacrule.py:256 ipaserver/plugins/internal.py:1935 -#: ipaserver/plugins/caacl.py:178 ipaserver/plugins/selinuxusermap.py:268 -#: ipaserver/plugins/sudorule.py:250 ipaserver/plugins/certmap.py:310 +#: ipaserver/plugins/certmap.py:310 ipaserver/plugins/hbacrule.py:256 +#: ipaserver/plugins/internal.py:1935 ipaserver/plugins/selinuxusermap.py:268 +#: ipaserver/plugins/sudorule.py:250 msgid "Enabled" msgstr "" -#: ipaserver/plugins/automember.py:697 ipaserver/plugins/hbacrule.py:260 -#: ipaserver/plugins/user.py:161 ipaserver/plugins/internal.py:1189 -#: ipaserver/plugins/caacl.py:220 ipaserver/plugins/selinuxusermap.py:272 -#: ipaserver/plugins/sudorule.py:291 ipaserver/plugins/baseuser.py:198 -msgid "Users" -msgstr "" - -#: ipaserver/plugins/hbacrule.py:264 ipaserver/plugins/internal.py:878 -#: ipaserver/plugins/internal.py:1188 ipaserver/plugins/caacl.py:224 +#: ipaserver/plugins/group.py:327 ipaserver/plugins/hbacrule.py:264 +#: ipaserver/plugins/internal.py:878 ipaserver/plugins/internal.py:1188 #: ipaserver/plugins/selinuxusermap.py:276 ipaserver/plugins/sudorule.py:295 msgid "User Groups" msgstr "" -#: ipaserver/plugins/automember.py:702 ipaserver/plugins/hbacrule.py:268 -#: ipaserver/plugins/host.py:461 ipaserver/plugins/internal.py:1163 -#: ipaserver/plugins/caacl.py:228 ipaserver/plugins/selinuxusermap.py:280 -#: ipaserver/plugins/sudorule.py:304 -msgid "Hosts" -msgstr "" - #: ipaserver/plugins/hbacrule.py:272 ipaserver/plugins/hostgroup.py:178 #: ipaserver/plugins/internal.py:1072 ipaserver/plugins/internal.py:1162 -#: ipaserver/plugins/caacl.py:232 ipaserver/plugins/selinuxusermap.py:284 -#: ipaserver/plugins/sudorule.py:308 +#: ipaserver/plugins/selinuxusermap.py:284 ipaserver/plugins/sudorule.py:308 msgid "Host Groups" msgstr "" -#: ipaserver/plugins/service.py:493 ipaserver/plugins/internal.py:955 -#: ipaserver/plugins/caacl.py:236 +#: ipaserver/plugins/internal.py:955 ipaserver/plugins/service.py:493 msgid "Services" msgstr "" @@ -2921,10 +4196,6 @@ msgstr "" msgid "Create a new HBAC rule." msgstr "" -#: ipaserver/plugins/cert.py:1344 ipaserver/plugins/baseldap.py:1223 -msgid "Suppress processing of membership attributes." -msgstr "" - #: ipaserver/plugins/hbacrule.py:534 msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" @@ -2941,16 +4212,6 @@ msgstr "" msgid "host groups to add" msgstr "" -#: ipaserver/plugins/privilege.py:226 ipaserver/plugins/privilege.py:257 -#: ipaserver/plugins/role.py:231 ipaserver/plugins/role.py:255 -#: ipaserver/plugins/baseldap.py:1766 ipaserver/plugins/baseldap.py:2253 -msgid "Members that could not be added" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1770 ipaserver/plugins/baseldap.py:2257 -msgid "Number of members added" -msgstr "" - #: ipaserver/plugins/hbacrule.py:591 msgid "Add services to an HBAC rule." msgstr "" @@ -2971,18 +4232,6 @@ msgstr "" msgid "Add users and groups to an HBAC rule." msgstr "" -msgid "member user" -msgstr "" - -msgid "users to add" -msgstr "" - -msgid "member group" -msgstr "" - -msgid "groups to add" -msgstr "" - #: ipaserver/plugins/hbacrule.py:314 msgid "Delete an HBAC rule." msgstr "" @@ -3013,14 +4262,6 @@ msgstr "" msgid "host groups to remove" msgstr "" -#: ipaserver/plugins/baseldap.py:1864 ipaserver/plugins/baseldap.py:2352 -msgid "Members that could not be removed" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1868 ipaserver/plugins/baseldap.py:2356 -msgid "Number of members removed" -msgstr "" - #: ipaserver/plugins/hbacrule.py:613 msgid "Remove service and service groups from an HBAC rule." msgstr "" @@ -3035,12 +4276,6 @@ msgstr "" msgid "Remove users and groups from an HBAC rule." msgstr "" -msgid "users to remove" -msgstr "" - -msgid "groups to remove" -msgstr "" - #: ipaserver/plugins/hbacrule.py:375 msgid "Display the properties of an HBAC rule." msgstr "" @@ -3168,6 +4403,256 @@ msgstr "" msgid "Display information about an HBAC service group." msgstr "" +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts.\n" +"You can use HBAC to control which users or groups can access a service,\n" +"or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--sizelimit= ]\n" +"\n" +" --user, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/" +"not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules " +"_and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +" By default there is a IPA-wide limit to number of entries fetched, you can " +"change it\n" +" with --sizelimit option.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Not matched rules: new-rule\n" +" Matched rules: allow_all\n" +"\n" +"\n" +"HBACTEST AND TRUSTED DOMAINS\n" +"\n" +"When an external trusted domain is configured in IPA, HBAC rules are also " +"applied\n" +"on users accessing IPA resources from the trusted domain. Trusted domain " +"users and\n" +"groups (and their SIDs) can be then assigned to external groups which can " +"be\n" +"members of POSIX groups in IPA which can be used in HBAC rules and thus " +"allowing\n" +"access to resources protected by the HBAC system.\n" +"\n" +"hbactest plugin is capable of testing access for both local IPA users and " +"users\n" +"from the trusted domains, either by a fully qualified user name or by user " +"SID.\n" +"Such user names need to have a trusted domain specified as a short name\n" +"(DOMAIN\\Administrator) or with a user principal name (UPN), " +"Administrator@ad.test.\n" +"\n" +"Please note that hbactest executed with a trusted domain user as --user " +"parameter\n" +"can be only run by members of \"trust admins\" group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Test if a user from a trusted domain specified by its shortname " +"matches any\n" +" rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 2. Test if a user from a trusted domain specified by its domain name " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 3. Test if a user from a trusted domain specified by its SID matches any " +"rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 4. Test if other user from a trusted domain specified by its SID matches " +"any rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +"\n" +" 5. Test if other user from a trusted domain specified by its shortname " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +msgstr "" + +#: ipaserver/plugins/hbactest.py:256 +msgid "Simulate use of Host-based access controls" +msgstr "" + +#: ipaserver/plugins/krbtpolicy.py:134 ipaserver/plugins/passwd.py:94 +#: ipaserver/plugins/hbactest.py:270 +msgid "User name" +msgstr "" + +#: ipaserver/plugins/hbactest.py:281 +msgid "Target host" +msgstr "" + +#: ipaserver/plugins/hbactest.py:289 +msgid "Rules to test. If not specified, --enabled is assumed" +msgstr "" + +#: ipaserver/plugins/hbactest.py:293 +msgid "Hide details which rules are matched, not matched, or invalid" +msgstr "" + +#: ipaserver/plugins/hbactest.py:297 +msgid "Include all enabled IPA rules into test [default]" +msgstr "" + +#: ipaserver/plugins/hbactest.py:301 +msgid "Include all disabled IPA rules into test" +msgstr "" + +#: ipaserver/plugins/hbactest.py:305 +msgid "Maximum number of rules to process when no --rules is specified" +msgstr "" + +#: ipaserver/plugins/hbactest.py:260 +msgid "Warning" +msgstr "" + +#: ipaserver/plugins/hbactest.py:261 +msgid "Matched rules" +msgstr "" + +#: ipaserver/plugins/hbactest.py:262 +msgid "Not matched rules" +msgstr "" + +#: ipaserver/plugins/hbactest.py:263 +msgid "Non-existent or invalid rules" +msgstr "" + +#: ipaserver/plugins/hbactest.py:264 +msgid "Result of simulation" +msgstr "" + msgid "" "\n" "Hosts/Machines\n" @@ -3269,22 +4754,22 @@ msgstr "" msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipaserver/plugins/baseuser.py:291 +#: ipaserver/plugins/host.py:508 msgid "Random password" msgstr "" -#: ipaserver/plugins/ca.py:112 ipaserver/plugins/host.py:513 -#: ipaserver/plugins/service.py:519 ipaserver/plugins/internal.py:638 -#: ipaserver/plugins/internal.py:722 ipaserver/plugins/idviews.py:1055 #: ipaserver/plugins/baseuser.py:400 ipaserver/plugins/baseuser.py:845 -#: ipaserver/plugins/certmap.py:605 +#: ipaserver/plugins/ca.py:112 ipaserver/plugins/certmap.py:605 +#: ipaserver/plugins/host.py:513 ipaserver/plugins/internal.py:638 +#: ipaserver/plugins/internal.py:722 ipaserver/plugins/service.py:519 +#: ipaserver/plugins/cert.py:353 ipaserver/plugins/idviews.py:1056 msgid "Certificate" msgstr "" msgid "Base-64 encoded server certificate" msgstr "" -#: ipaserver/plugins/service.py:501 ipaserver/plugins/baseuser.py:251 +#: ipaserver/plugins/host.py:555 ipaserver/plugins/service.py:501 msgid "Principal name" msgstr "" @@ -3294,11 +4779,11 @@ msgstr "" msgid "Hardware MAC address(es) on this host" msgstr "" -#: ipaserver/plugins/idviews.py:1049 ipaserver/plugins/baseuser.py:350 +#: ipaserver/plugins/host.py:576 ipaserver/plugins/idviews.py:1050 msgid "SSH public key" msgstr "" -#: ipaserver/plugins/baseuser.py:367 +#: ipaserver/plugins/host.py:586 msgid "Class" msgstr "" @@ -3327,44 +4812,13 @@ msgstr "" msgid "Client credentials may be delegated to the service" msgstr "" -#: ipaserver/plugins/migration.py:534 ipaserver/plugins/internal.py:190 -#: ipaserver/plugins/internal.py:408 ipaserver/plugins/internal.py:1714 -#: ipaserver/plugins/baseldap.py:50 ipaserver/plugins/baseuser.py:279 -msgid "Password" -msgstr "" - #: ipaserver/plugins/baseldap.py:71 msgid "Member of host-groups" msgstr "" -#: ipaserver/plugins/baseldap.py:80 -msgid "Roles" -msgstr "" - -msgid "Member of netgroups" -msgstr "" - -msgid "Member of Sudo rule" -msgstr "" - -msgid "Member of HBAC rule" -msgstr "" - -msgid "Indirect Member of netgroup" -msgstr "" - msgid "Indirect Member of host-group" msgstr "" -msgid "Indirect Member of role" -msgstr "" - -msgid "Indirect Member of Sudo rule" -msgstr "" - -msgid "Indirect Member of HBAC rule" -msgstr "" - #: ipaserver/plugins/service.py:128 msgid "Keytab" msgstr "" @@ -3464,54 +4918,37 @@ msgstr "" msgid "Search for hosts without these member of host groups." msgstr "" -msgid "netgroup" -msgstr "" - msgid "Search for hosts with these member of netgroups." msgstr "" msgid "Search for hosts without these member of netgroups." msgstr "" -#: ipaserver/plugins/serverrole.py:185 -msgid "role" -msgstr "" - msgid "Search for hosts with these member of roles." msgstr "" msgid "Search for hosts without these member of roles." msgstr "" -msgid "HBAC rule" -msgstr "" - msgid "Search for hosts with these member of HBAC rules." msgstr "" msgid "Search for hosts without these member of HBAC rules." msgstr "" -msgid "sudo rule" -msgstr "" - msgid "Search for hosts with these member of sudo rules." msgstr "" msgid "Search for hosts without these member of sudo rules." msgstr "" -#: ipaserver/plugins/user.py:163 ipaserver/plugins/sudorule.py:442 -msgid "user" -msgstr "" - msgid "Search for hosts with these enrolled by users." msgstr "" msgid "Search for hosts without these enrolled by users." msgstr "" -#: ipaserver/plugins/host.py:284 ipaserver/plugins/sudorule.py:447 +#: ipaserver/plugins/cert.py:1028 ipaserver/plugins/sudorule.py:447 msgid "host" msgstr "" @@ -3542,7 +4979,7 @@ msgstr "" msgid "Display information about a host." msgstr "" -#: ipaserver/plugins/host.py:1137 ipaserver/plugins/service.py:987 +#: ipaserver/plugins/service.py:987 ipaserver/plugins/user.py:928 msgid "file to store certificate in" msgstr "" @@ -3670,6 +5107,243 @@ msgstr "" msgid "Display information about a hostgroup." msgstr "" +msgid "" +"\n" +"ID ranges\n" +"\n" +"Manage ID ranges used to map Posix IDs to SIDs and back.\n" +"\n" +"There are two type of ID ranges which are both handled by this utility:\n" +"\n" +" - the ID ranges of the local domain\n" +" - the ID ranges of trusted remote domains\n" +"\n" +"Both types have the following attributes in common:\n" +"\n" +" - base-id: the first ID of the Posix ID range\n" +" - range-size: the size of the range\n" +"\n" +"With those two attributes a range object can reserve the Posix IDs starting\n" +"with base-id up to but not including base-id+range-size exclusively.\n" +"\n" +"Additionally an ID range of the local domain may set\n" +" - rid-base: the first RID(*) of the corresponding RID range\n" +" - secondary-rid-base: first RID of the secondary RID range\n" +"\n" +"and an ID range of a trusted domain must set\n" +" - rid-base: the first RID of the corresponding RID range\n" +" - sid: domain SID of the trusted domain\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for a trusted domain\n" +"\n" +"Since there might be more than one trusted domain the domain SID must be " +"given\n" +"while creating the ID range.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"This ID range is then used by the IPA server and the SSSD IPA provider to\n" +"assign Posix UIDs to users from the trusted domain.\n" +"\n" +"If e.g. a range for a trusted domain is configured with the following " +"values:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " +"So\n" +"RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for the local domain\n" +"\n" +"To create an ID range for the local domain it is not necessary to specify a\n" +"domain SID. But since it is possible that a user and a group can have the " +"same\n" +"value as Posix ID a second RID interval is needed to handle conflicts.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=1000 --secondary-rid-base=1000000 local_range\n" +"\n" +"The data from the ID ranges of the local domain are used by the IPA server\n" +"internally to assign SIDs to IPA users and groups. The SID will then be " +"stored\n" +"in the user or group objects.\n" +"\n" +"If e.g. the ID range for the local domain is configured with the values " +"from\n" +"the example above then a new user with the UID 1200007 will get the RID " +"1007.\n" +"If this RID is already used by a group the RID will be 1000007. This can " +"only\n" +"happen if a user or a group object was created with a fixed ID because the\n" +"automatic assignment will not assign the same ID twice. Since there are " +"only\n" +"users and groups sharing the same ID namespace it is sufficient to have " +"only\n" +"one fallback range to handle conflicts.\n" +"\n" +"To find the Posix ID for a given RID from the local domain it has to be\n" +"checked first if the RID falls in the primary or secondary RID range and\n" +"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" +"and the base-id has to be added to get the Posix ID.\n" +"\n" +"Typically the creation of ID ranges happens behind the scenes and this CLI\n" +"must not be used at all. The ID range for the local domain will be created\n" +"during installation or upgrade from an older version. The ID range for a\n" +"trusted domain will be created together with the trust by 'ipa trust-" +"add ...'.\n" +"\n" +"USE CASES:\n" +"\n" +" Add an ID range from a transitively trusted domain\n" +"\n" +" If the trusted domain (A) trusts another domain (B) as well and this " +"trust\n" +" is transitive 'ipa trust-add domain-A' will only create a range for\n" +" domain A. The ID range for domain B must be added manually.\n" +"\n" +" Add an additional ID range for the local domain\n" +"\n" +" If the ID range of the local domain is exhausted, i.e. no new IDs can " +"be\n" +" assigned to Posix users or groups by the DNA plugin, a new range has to " +"be\n" +" created to allow new users and groups to be added. (Currently there is " +"no\n" +" connection between this range CLI and the DNA plugin, but a future " +"version\n" +" might be able to modify the configuration of the DNS plugin as well)\n" +"\n" +"In general it is not necessary to modify or delete ID ranges. If there is " +"no\n" +"other way to achieve a certain configuration than to modify or delete an ID\n" +"range it should be done with great care. Because UIDs are stored in the " +"file\n" +"system and are used for access control it might be possible that users are\n" +"allowed to access files of other users if an ID range got deleted and " +"reused\n" +"for a different domain.\n" +"\n" +"(*) The RID is typically the last integer of a user or group SID which " +"follows\n" +"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " +"from\n" +"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 is the RID of " +"the\n" +"user. RIDs are unique in a domain, 32bit values and are used for users and\n" +"groups.\n" +"\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +msgstr "" + +#: ipaserver/plugins/idrange.py:219 +msgid "Range name" +msgstr "" + +#: ipaserver/plugins/idrange.py:224 +msgid "First Posix ID of the range" +msgstr "" + +#: ipaserver/plugins/idrange.py:230 +msgid "Number of IDs in the range" +msgstr "" + +#: ipaserver/plugins/idrange.py:236 +msgid "First RID of the corresponding RID range" +msgstr "" + +#: ipaserver/plugins/idrange.py:240 +msgid "First RID of the secondary RID range" +msgstr "" + +#: ipaserver/plugins/idrange.py:245 ipaserver/plugins/idrange.py:655 +msgid "Domain SID of the trusted domain" +msgstr "" + +#: ipaserver/plugins/idrange.py:250 ipaserver/plugins/idrange.py:663 +msgid "Name of the trusted domain" +msgstr "" + +#: ipaserver/plugins/idrange.py:253 ipaserver/plugins/internal.py:1246 +#: ipaserver/plugins/trust.py:711 +msgid "Range type" +msgstr "" + +msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" +msgstr "" + +msgid "" +"\n" +"Add new ID range.\n" +"\n" +" To add a new ID range you always have to specify\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Additionally\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" may be given for a new ID range for the local domain while\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" must be given to add a new range for a trusted AD domain.\n" +"\n" +" WARNING:\n" +"\n" +" DNA plugin in 389-ds will allocate IDs based on the ranges configured " +"for the\n" +" local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +" on the local ranges set via this family of commands.\n" +"\n" +" Manual configuration change has to be done in the DNA plugin " +"configuration for\n" +" the new local range. Specifically, The dnaNextRange attribute of " +"'cn=Posix\n" +" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has " +"to be\n" +" modified to match the new range.\n" +" " +msgstr "" + +#: ipaserver/plugins/idrange.py:556 +msgid "Delete an ID range." +msgstr "" + +#: ipaserver/plugins/idrange.py:604 +msgid "Search for ranges." +msgstr "" + +msgid "Modify ID range." +msgstr "" + +#: ipaserver/plugins/idrange.py:627 +msgid "Display information about a range." +msgstr "" + msgid "" "\n" "ID Views\n" @@ -3683,44 +5357,35 @@ msgid "" "other Identity Management solutions.\n" msgstr "" -#: ipaserver/plugins/idviews.py:771 +#: ipaserver/plugins/idviews.py:772 msgid "Anchor to override" msgstr "" -#: ipaserver/plugins/idviews.py:1122 -msgid "Group name" -msgstr "" - -#: ipaserver/plugins/idviews.py:1032 ipaserver/plugins/idviews.py:1127 -#: ipaserver/plugins/baseuser.py:301 -msgid "GID" -msgstr "" - -#: ipaserver/plugins/idviews.py:1128 ipaserver/plugins/baseuser.py:302 +#: ipaserver/plugins/idviews.py:1034 ipaserver/plugins/idviews.py:1129 msgid "Group ID Number" msgstr "" -#: ipaserver/plugins/baseuser.py:207 +#: ipaserver/plugins/idviews.py:1020 msgid "User login" msgstr "" -#: ipaserver/plugins/baseuser.py:296 +#: ipaserver/plugins/idviews.py:1025 msgid "UID" msgstr "" -#: ipaserver/plugins/idviews.py:1025 +#: ipaserver/plugins/idviews.py:1026 msgid "User ID Number" msgstr "" -#: ipaserver/plugins/idviews.py:1029 ipaserver/plugins/baseuser.py:240 +#: ipaserver/plugins/baseuser.py:240 ipaserver/plugins/idviews.py:1030 msgid "GECOS" msgstr "" -#: ipaserver/plugins/baseuser.py:237 +#: ipaserver/plugins/idviews.py:1039 msgid "Home directory" msgstr "" -#: ipaserver/plugins/baseuser.py:246 +#: ipaserver/plugins/idviews.py:1043 msgid "Login shell" msgstr "" @@ -3728,56 +5393,56 @@ msgstr "" msgid "ID View Name" msgstr "" -#: ipaserver/plugins/idviews.py:1283 +#: ipaserver/plugins/idviews.py:1284 msgid "Add a new Group ID override." msgstr "" -#: ipaserver/plugins/idviews.py:1289 +#: ipaserver/plugins/idviews.py:1290 msgid "Delete an Group ID override." msgstr "" -#: ipaserver/plugins/idviews.py:1301 +#: ipaserver/plugins/idviews.py:1302 msgid "Search for an Group ID override." msgstr "" msgid "Results should contain primary key attribute only (\"anchor\")" msgstr "" -#: ipaserver/plugins/idviews.py:1295 +#: ipaserver/plugins/idviews.py:1296 msgid "Modify an Group ID override." msgstr "" msgid "Rename the Group ID override object" msgstr "" -#: ipaserver/plugins/idviews.py:1317 +#: ipaserver/plugins/idviews.py:1318 msgid "Display information about an Group ID override." msgstr "" -#: ipaserver/plugins/idviews.py:1184 +#: ipaserver/plugins/idviews.py:1185 msgid "Add a new User ID override." msgstr "" -#: ipaserver/plugins/idviews.py:1209 +#: ipaserver/plugins/idviews.py:1210 msgid "Delete an User ID override." msgstr "" -#: ipaserver/plugins/idviews.py:1247 +#: ipaserver/plugins/idviews.py:1248 msgid "Search for an User ID override." msgstr "" -#: ipaserver/plugins/idviews.py:1215 +#: ipaserver/plugins/idviews.py:1216 msgid "Modify an User ID override." msgstr "" msgid "Rename the User ID override object" msgstr "" -#: ipaserver/plugins/idviews.py:1271 +#: ipaserver/plugins/idviews.py:1272 msgid "Display information about an User ID override." msgstr "" -#: ipaserver/plugins/idviews.py:195 +#: ipaserver/plugins/idviews.py:196 msgid "Add a new ID View." msgstr "" @@ -3786,87 +5451,87 @@ msgid "" "hostgroups. If any other ID View is applied to the host, it is overriden." msgstr "" -#: ipaserver/plugins/idviews.py:453 ipaserver/plugins/idviews.py:496 +#: ipaserver/plugins/idviews.py:454 ipaserver/plugins/idviews.py:497 #: ipaserver/plugins/sudorule.py:447 msgid "hosts" msgstr "" -#: ipaserver/plugins/idviews.py:452 +#: ipaserver/plugins/idviews.py:453 msgid "Hosts to apply the ID View to" msgstr "" -#: ipaserver/plugins/idviews.py:460 ipaserver/plugins/idviews.py:503 +#: ipaserver/plugins/idviews.py:461 ipaserver/plugins/idviews.py:504 msgid "hostgroups" msgstr "" -#: ipaserver/plugins/idviews.py:457 +#: ipaserver/plugins/idviews.py:458 msgid "" "Hostgroups to whose hosts apply the ID View to. Please note that view is not " "applied automatically to any hosts added to the hostgroup after running the " "idview-apply command." msgstr "" -#: ipaserver/plugins/idviews.py:468 +#: ipaserver/plugins/idviews.py:469 msgid "Hosts that this ID View was applied to." msgstr "" -#: ipaserver/plugins/idviews.py:472 +#: ipaserver/plugins/idviews.py:473 msgid "Hosts or hostgroups that this ID View could not be applied to." msgstr "" -#: ipaserver/plugins/idviews.py:477 +#: ipaserver/plugins/idviews.py:478 msgid "Number of hosts the ID View was applied to:" msgstr "" -#: ipaserver/plugins/idviews.py:212 +#: ipaserver/plugins/idviews.py:213 msgid "Delete an ID View." msgstr "" -#: ipaserver/plugins/idviews.py:241 +#: ipaserver/plugins/idviews.py:242 msgid "Search for an ID View." msgstr "" -#: ipaserver/plugins/idviews.py:225 +#: ipaserver/plugins/idviews.py:226 msgid "Modify an ID View." msgstr "" msgid "Rename the ID View object" msgstr "" -#: ipaserver/plugins/idviews.py:248 +#: ipaserver/plugins/idviews.py:249 msgid "Display information about an ID View." msgstr "" -#: ipaserver/plugins/idviews.py:253 +#: ipaserver/plugins/idviews.py:254 msgid "Enumerate all the hosts the view applies to." msgstr "" -#: ipaserver/plugins/idviews.py:484 +#: ipaserver/plugins/idviews.py:485 msgid "" "Clears ID View from specified hosts or current members of specified " "hostgroups." msgstr "" -#: ipaserver/plugins/idviews.py:495 +#: ipaserver/plugins/idviews.py:496 msgid "Hosts to clear (any) ID View from." msgstr "" -#: ipaserver/plugins/idviews.py:500 +#: ipaserver/plugins/idviews.py:501 msgid "" "Hostgroups whose hosts should have ID Views cleared. Note that view is not " "cleared automatically from any host added to the hostgroup after running " "idview-unapply command." msgstr "" -#: ipaserver/plugins/idviews.py:511 +#: ipaserver/plugins/idviews.py:512 msgid "Hosts that ID View was cleared from." msgstr "" -#: ipaserver/plugins/idviews.py:515 +#: ipaserver/plugins/idviews.py:516 msgid "Hosts or hostgroups that ID View could not be cleared from." msgstr "" -#: ipaserver/plugins/idviews.py:520 +#: ipaserver/plugins/idviews.py:521 msgid "Number of hosts that had a ID View was unset:" msgstr "" @@ -3968,10 +5633,6 @@ msgid "" " ipa krbtpolicy-mod admin --maxlife=3600\n" msgstr "" -#: ipaserver/plugins/passwd.py:94 ipaserver/plugins/krbtpolicy.py:134 -msgid "User name" -msgstr "" - #: ipaserver/plugins/krbtpolicy.py:135 msgid "Manage ticket policy for specific user" msgstr "" @@ -4273,9 +5934,6 @@ msgid "" "retrieve and print all attributes from the server. Affects command output." msgstr "" -msgid "Dictionary mapping variable name to value" -msgstr "" - msgid "Total number of variables env (>= count)" msgstr "" @@ -4392,11 +6050,6 @@ msgstr "" msgid "Search for netgroups without these member users." msgstr "" -#: ipaserver/plugins/group.py:417 ipaserver/plugins/group.py:678 -#: ipaserver/plugins/user.py:151 -msgid "group" -msgstr "" - msgid "Search for netgroups with these member groups." msgstr "" @@ -4504,6 +6157,186 @@ msgstr "" msgid "Show the current OTP configuration." msgstr "" +msgid "" +"\n" +"OTP Tokens\n" +"\n" +"Manage OTP tokens.\n" +"\n" +"IPA supports the use of OTP tokens for multi-factor authentication. This\n" +"code enables the management of OTP tokens.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new token:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +"\n" +" Examine the token:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +"\n" +" Change the vendor:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +"\n" +" Delete a token:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" + +#: ipaserver/plugins/otptoken.py:160 ipaserver/plugins/subid.py:136 +msgid "Unique ID" +msgstr "" + +#: ipaserver/plugins/otptoken.py:166 +msgid "Type of the token" +msgstr "" + +#: ipaserver/plugins/otptoken.py:175 +msgid "Token description (informational only)" +msgstr "" + +#: ipaserver/plugins/internal.py:1372 ipaserver/plugins/otptoken.py:179 +#: ipaserver/plugins/subid.py:149 ipaserver/plugins/subid.py:467 +msgid "Owner" +msgstr "" + +#: ipaserver/plugins/otptoken.py:180 +msgid "Assigned user of the token (default: self)" +msgstr "" + +#: ipaserver/plugins/otptoken.py:183 +msgid "Manager" +msgstr "" + +#: ipaserver/plugins/otptoken.py:184 +msgid "Assigned manager of the token (default: self)" +msgstr "" + +#: ipaserver/plugins/internal.py:1933 ipaserver/plugins/otptoken.py:189 +msgid "Disabled" +msgstr "" + +#: ipaserver/plugins/otptoken.py:190 +msgid "Mark the token as disabled (default: false)" +msgstr "" + +#: ipaserver/plugins/otptoken.py:194 +msgid "Validity start" +msgstr "" + +#: ipaserver/plugins/otptoken.py:195 +msgid "First date/time the token can be used" +msgstr "" + +#: ipaserver/plugins/otptoken.py:199 +msgid "Validity end" +msgstr "" + +#: ipaserver/plugins/otptoken.py:200 +msgid "Last date/time the token can be used" +msgstr "" + +#: ipaserver/plugins/otptoken.py:204 +msgid "Vendor" +msgstr "" + +#: ipaserver/plugins/otptoken.py:205 +msgid "Token vendor name (informational only)" +msgstr "" + +#: ipaserver/plugins/otptoken.py:209 +msgid "Model" +msgstr "" + +#: ipaserver/plugins/otptoken.py:210 +msgid "Token model (informational only)" +msgstr "" + +#: ipaserver/plugins/otptoken.py:214 +msgid "Serial" +msgstr "" + +#: ipaserver/plugins/otptoken.py:215 +msgid "Token serial (informational only)" +msgstr "" + +#: ipaserver/plugins/otptoken.py:220 +msgid "Token secret (Base32; default: random)" +msgstr "" + +#: ipaserver/plugins/otptoken.py:230 +msgid "Token hash algorithm" +msgstr "" + +#: ipaserver/plugins/otptoken.py:238 +msgid "Digits" +msgstr "" + +#: ipaserver/plugins/otptoken.py:239 +msgid "Number of digits each token code will have" +msgstr "" + +#: ipaserver/plugins/otptoken.py:247 +msgid "Clock offset" +msgstr "" + +#: ipaserver/plugins/otptoken.py:248 +msgid "TOTP token / IPA server time difference" +msgstr "" + +#: ipaserver/plugins/otptoken.py:255 +msgid "Clock interval" +msgstr "" + +#: ipaserver/plugins/otptoken.py:256 +msgid "Length of TOTP token code validity" +msgstr "" + +#: ipaserver/plugins/otptoken.py:264 +msgid "Counter" +msgstr "" + +#: ipaserver/plugins/otptoken.py:265 +msgid "Initial counter for the HOTP token" +msgstr "" + +#: ipaserver/plugins/otptoken.py:280 +msgid "Add a new OTP token." +msgstr "" + +#: ipaserver/plugins/otptoken.py:284 +msgid "(deprecated)" +msgstr "" + +#: ipaserver/plugins/otptoken.py:285 +msgid "Do not display QR code" +msgstr "" + +#: ipaserver/plugins/otptoken.py:463 +msgid "Add users that can manage this token." +msgstr "" + +#: ipaserver/plugins/otptoken.py:366 +msgid "Delete an OTP token." +msgstr "" + +#: ipaserver/plugins/otptoken.py:421 +msgid "Search for OTP token." +msgstr "" + +msgid "Results should contain primary key attribute only (\"id\")" +msgstr "" + +#: ipaserver/plugins/otptoken.py:372 +msgid "Modify a OTP token." +msgstr "" + +msgid "Rename the OTP token object" +msgstr "" + +#: ipaserver/plugins/otptoken.py:450 +msgid "Display information about an OTP token." +msgstr "" + msgid "" "\n" "YubiKey Tokens\n" @@ -4542,15 +6375,16 @@ msgstr "" msgid "Set a user's password." msgstr "" -#: ipaserver/plugins/internal.py:1698 +#: ipaserver/plugins/internal.py:1698 ipaserver/plugins/passwd.py:101 msgid "New Password" msgstr "" -#: ipaserver/plugins/internal.py:1692 +#: ipaserver/plugins/internal.py:1692 ipaserver/plugins/passwd.py:104 msgid "Current Password" msgstr "" #: ipaserver/plugins/internal.py:188 ipaserver/plugins/internal.py:1700 +#: ipaserver/plugins/passwd.py:113 msgid "OTP" msgstr "" @@ -4988,7 +6822,7 @@ msgid "" " ipa pwpolicy-mod --minclasses=2 localadmins\n" msgstr "" -#: ipaserver/plugins/pwpolicy.py:303 ipaserver/plugins/internal.py:1653 +#: ipaserver/plugins/internal.py:1653 ipaserver/plugins/pwpolicy.py:303 msgid "Group" msgstr "" @@ -5090,9 +6924,9 @@ msgstr "" msgid "Display information about password policy." msgstr "" -#: ipaserver/plugins/pwpolicy.py:624 ipaserver/plugins/user.py:162 -#: ipaserver/plugins/internal.py:1187 ipaserver/plugins/internal.py:1299 -#: ipaserver/plugins/internal.py:1687 ipaserver/plugins/baseuser.py:199 +#: ipaserver/plugins/baseuser.py:199 ipaserver/plugins/internal.py:1187 +#: ipaserver/plugins/internal.py:1299 ipaserver/plugins/internal.py:1687 +#: ipaserver/plugins/user.py:162 ipaserver/plugins/pwpolicy.py:624 msgid "User" msgstr "" @@ -5221,8 +7055,8 @@ msgid "" " ipa realmdomains-mod --del-domain=olddomain.com\n" msgstr "" -#: ipaserver/plugins/internal.py:1534 ipaserver/plugins/trust.py:1245 -#: ipaserver/plugins/realmdomains.py:115 ipaserver/plugins/certmap.py:566 +#: ipaserver/plugins/internal.py:714 ipaserver/plugins/internal.py:1534 +#: ipaserver/plugins/realmdomains.py:115 ipaserver/plugins/trust.py:1246 msgid "Domain" msgstr "" @@ -5290,12 +7124,6 @@ msgstr "" msgid "A description of this role-group" msgstr "" -msgid "Member users" -msgstr "" - -msgid "Member groups" -msgstr "" - msgid "Privileges" msgstr "" @@ -5586,9 +7414,6 @@ msgid "" "httpd.keytab\n" msgstr "" -msgid "Principal" -msgstr "" - #: ipaserver/plugins/service.py:502 msgid "Service principal" msgstr "" @@ -6346,11 +8171,7 @@ msgstr "" msgid "Sudo Command Group" msgstr "" -#: ipaserver/plugins/sudocmdgroup.py:131 ipaserver/plugins/group.py:343 -msgid "Group description" -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:134 ipaserver/plugins/internal.py:1400 +#: ipaserver/plugins/internal.py:1400 ipaserver/plugins/sudocmdgroup.py:134 msgid "Commands" msgstr "" @@ -6398,6 +8219,253 @@ msgstr "" msgid "Display Sudo Command Group." msgstr "" +msgid "" +"\n" +"Cross-realm trusts\n" +"\n" +"Manage trust relationship between IPA and Active Directory domains.\n" +"\n" +"In order to allow users from a remote domain to access resources in IPA\n" +"domain, trust relationship needs to be established. Currently IPA supports\n" +"only trusts between IPA and Active Directory domains under control of " +"Windows\n" +"Server 2008 or later, with functional level 2008 or later.\n" +"\n" +"Please note that DNS on both IPA and Active Directory domain sides should " +"be\n" +"configured properly to discover each other. Trust relationship relies on\n" +"ability to discover special resources in the other domain via DNS records.\n" +"\n" +"Examples:\n" +"\n" +"1. Establish cross-realm trust with Active Directory using AD administrator\n" +" credentials:\n" +"\n" +" ipa trust-add --type=ad --admin --" +"password\n" +"\n" +"2. List all existing trust relationships:\n" +"\n" +" ipa trust-find\n" +"\n" +"3. Show details of the specific trust relationship:\n" +"\n" +" ipa trust-show \n" +"\n" +"4. Delete existing trust relationship:\n" +"\n" +" ipa trust-del \n" +"\n" +"Once trust relationship is established, remote users will need to be mapped\n" +"to local POSIX groups in order to actually use IPA resources. The mapping " +"should\n" +"be done via use of external membership of non-POSIX group and then this " +"group\n" +"should be included into one of local POSIX groups.\n" +"\n" +"Example:\n" +"\n" +"1. Create group for the trusted domain admins' mapping and their local POSIX " +"group:\n" +"\n" +" ipa group-add --desc=' admins external map' ad_admins_external " +"--external\n" +" ipa group-add --desc=' admins' ad_admins\n" +"\n" +"2. Add security identifier of Domain Admins of the to the " +"ad_admins_external\n" +" group:\n" +"\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" +"\n" +"3. Allow members of ad_admins_external group to be associated with ad_admins " +"POSIX group:\n" +"\n" +" ipa group-add-member ad_admins --groups ad_admins_external\n" +"\n" +"4. List members of external members of ad_admins_external group to see their " +"SIDs:\n" +"\n" +" ipa group-show ad_admins_external\n" +"\n" +"\n" +"GLOBAL TRUST CONFIGURATION\n" +"\n" +"When IPA AD trust subpackage is installed and ipa-adtrust-install is run,\n" +"a local domain configuration (SID, GUID, NetBIOS name) is generated. These\n" +"identifiers are then used when communicating with a trusted domain of the\n" +"particular type.\n" +"\n" +"1. Show global trust configuration for Active Directory type of trusts:\n" +"\n" +" ipa trustconfig-show --type ad\n" +"\n" +"2. Modify global configuration for all trusts of Active Directory type and " +"set\n" +" a different fallback primary group (fallback primary group GID is used " +"as\n" +" a primary user GID if user authenticating to IPA domain does not have any " +"other\n" +" primary GID already set):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"alternative AD " +"group\"\n" +"\n" +"3. Change primary fallback group back to default hidden group (any group " +"with\n" +" posixGroup object class is allowed):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" +"\"\n" +msgstr "" + +#: ipaserver/plugins/internal.py:1537 ipaserver/plugins/trust.py:541 +#: ipaserver/plugins/trust.py:1586 +msgid "Domain NetBIOS name" +msgstr "" + +#: ipaserver/plugins/internal.py:1538 ipaserver/plugins/trust.py:545 +#: ipaserver/plugins/trust.py:1589 +msgid "Domain Security Identifier" +msgstr "" + +msgid "SID blacklist incoming" +msgstr "" + +msgid "SID blacklist outgoing" +msgstr "" + +msgid "Security Identifier" +msgstr "" + +msgid "NetBIOS name" +msgstr "" + +msgid "Domain GUID" +msgstr "" + +msgid "Fallback primary group" +msgstr "" + +#: ipaserver/plugins/certmap.py:298 ipaserver/plugins/trust.py:1581 +msgid "Domain name" +msgstr "" + +msgid "Trusted domain partner" +msgstr "" + +msgid "Determine whether ipa-adtrust-install has been run on this system" +msgstr "" + +msgid "" +"Determine whether Schema Compatibility plugin is configured to serve trusted " +"domain users and groups" +msgstr "" + +msgid "Determine whether ipa-adtrust-install has been run with sidgen task" +msgstr "" + +msgid "" +"\n" +"Add new trust to use.\n" +"\n" +"This command establishes trust relationship to another domain\n" +"which becomes 'trusted'. As result, users of the trusted domain\n" +"may access resources of this domain.\n" +"\n" +"Only trusts to Active Directory domains are supported right now.\n" +"\n" +"The command can be safely run multiple times against the same domain,\n" +"this will cause change to trust relationship credentials on both\n" +"sides.\n" +" " +msgstr "" + +msgid "Trust type (ad for Active Directory, default)" +msgstr "" + +#: ipaserver/plugins/trust.py:1799 +msgid "Active Directory domain administrator" +msgstr "" + +#: ipaserver/plugins/trust.py:1803 +msgid "Active Directory domain administrator's password" +msgstr "" + +#: ipaserver/plugins/trust.py:1808 +msgid "Domain controller for the Active Directory domain (optional)" +msgstr "" + +msgid "Shared secret for the trust" +msgstr "" + +msgid "First Posix ID of the range reserved for the trusted domain" +msgstr "" + +msgid "Size of the ID range reserved for the trusted domain" +msgstr "" + +msgid "" +"Type of trusted domain ID range, one of ipa-ad-trust-posix, ipa-ad-trust" +msgstr "" + +msgid "Delete a trust." +msgstr "" + +msgid "Refresh list of the domains associated with the trust" +msgstr "" + +msgid "Search for trusts." +msgstr "" + +msgid "Results should contain primary key attribute only (\"realm\")" +msgstr "" + +msgid "" +"\n" +"Modify a trust (for future use).\n" +"\n" +" Currently only the default option to modify the LDAP attributes is\n" +" available. More specific options will be added in coming releases.\n" +" " +msgstr "" + +msgid "Resolve security identifiers of users and groups in trusted domains" +msgstr "" + +msgid "Security Identifiers (SIDs)" +msgstr "" + +msgid "Display information about a trust." +msgstr "" + +msgid "Modify global trust configuration." +msgstr "" + +msgid "Show global trust configuration." +msgstr "" + +msgid "Allow access from the trusted domain" +msgstr "" + +msgid "Remove information about the domain associated with the trust." +msgstr "" + +msgid "Disable use of IPA resources by the domain of the trust" +msgstr "" + +msgid "Allow use of IPA resources by the domain of the trust" +msgstr "" + +msgid "Search domains of the trust" +msgstr "" + +msgid "Results should contain primary key attribute only (\"domain\")" +msgstr "" + +msgid "Modify trustdomain of the trust" +msgstr "" + msgid "" "\n" "Users\n" @@ -6449,7 +8517,7 @@ msgstr "" msgid "Last name" msgstr "" -#: ipaserver/plugins/baseuser.py:221 +#: ipaserver/plugins/schema.py:152 msgid "Full name" msgstr "" @@ -6508,10 +8576,6 @@ msgstr "" msgid "Job Title" msgstr "" -#: ipaserver/plugins/baseuser.py:343 -msgid "Manager" -msgstr "" - msgid "Car License" msgstr "" @@ -6556,12 +8620,6 @@ msgstr "" msgid "Preferred Language" msgstr "" -msgid "Member of groups" -msgstr "" - -msgid "Indirect Member of group" -msgstr "" - msgid "Kerberos keys available" msgstr "" @@ -6672,1510 +8730,6 @@ msgid "" " " msgstr "" -msgid "" -"\n" -"Auto Membership Rule.\n" -"\n" -"Bring clarity to the membership of hosts and users by configuring inclusive\n" -"or exclusive regex patterns, you can automatically assign a new entries " -"into\n" -"a group or hostgroup based upon attribute information.\n" -"\n" -"A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup.\n" -"\n" -"A condition is a regular expression used by 389-ds to match a new incoming\n" -"entry with an automember rule. If it matches an inclusive rule then the\n" -"entry is added to the appropriate group or hostgroup.\n" -"\n" -"A default group or hostgroup could be specified for entries that do not\n" -"match any rule. In case of user entries this group will be a fallback group\n" -"because all users are by default members of group specified in IPA config.\n" -"\n" -"The automember-rebuild command can be used to retroactively run automember " -"rules\n" -"against existing entries, thus rebuilding their membership.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add the initial group or hostgroup:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" -"\n" -" Add the initial rule:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" -"\n" -" Add a condition to the rule:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -" ipa automember-add-condition --key=manager --type=group --inclusive-" -"regex=^uid=mscott devel\n" -"\n" -" Add an exclusive condition to the rule to prevent auto assignment:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" -"\n" -" Add a host:\n" -" ipa host-add web1.example.com\n" -"\n" -" Add a user:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" -"\n" -" Verify automembership:\n" -" ipa hostgroup-show webservers\n" -" Host-group: webservers\n" -" Description: Web Servers\n" -" Member hosts: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Group name: devel\n" -" Description: Developers\n" -" GID: 1004200000\n" -" Member users: tuser\n" -"\n" -" Remove a condition from the rule:\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -"\n" -" Modify the automember rule:\n" -" ipa automember-mod\n" -"\n" -" Set the default (fallback) target group:\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" -"\n" -" Remove the default (fallback) target group:\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" -"\n" -" Show the default (fallback) target group:\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" -"\n" -" Find all of the automember rules:\n" -" ipa automember-find\n" -"\n" -" Display a automember rule:\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" -"\n" -" Delete an automember rule:\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" -"\n" -" Rebuild membership for all users:\n" -" ipa automember-rebuild --type=group\n" -"\n" -" Rebuild membership for all hosts:\n" -" ipa automember-rebuild --type=hostgroup\n" -"\n" -" Rebuild membership for specified users:\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" -"\n" -" Rebuild membership for specified hosts:\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" -msgstr "" - -#: ipaserver/plugins/automember.py:258 -msgid "A description of this auto member rule" -msgstr "" - -#: ipaserver/plugins/automember.py:262 ipaserver/plugins/automember.py:585 -msgid "Default (fallback) Group" -msgstr "" - -#: ipaserver/plugins/automember.py:263 -msgid "Default group for entries to land" -msgstr "" - -msgid "Add an automember rule." -msgstr "" - -#: ipaserver/plugins/automember.py:249 ipaserver/plugins/automember.py:250 -msgid "Automember Rule" -msgstr "" - -#: ipaserver/plugins/automember.py:184 -msgid "Grouping Type" -msgstr "" - -#: ipaserver/plugins/automember.py:185 -msgid "Grouping to which the rule applies" -msgstr "" - -msgid "Add conditions to an automember rule." -msgstr "" - -#: ipaserver/plugins/automember.py:160 ipaserver/plugins/automember.py:161 -msgid "Inclusive Regex" -msgstr "" - -#: ipaserver/plugins/automember.py:167 ipaserver/plugins/automember.py:168 -msgid "Exclusive Regex" -msgstr "" - -#: ipaserver/plugins/automember.py:176 -msgid "Attribute Key" -msgstr "" - -#: ipaserver/plugins/automember.py:177 -msgid "" -"Attribute to filter via regex. For example fqdn for a host, or manager for a " -"user" -msgstr "" - -#: ipaserver/plugins/automember.py:357 -msgid "Conditions that could not be added" -msgstr "" - -#: ipaserver/plugins/automember.py:361 -msgid "Number of conditions added" -msgstr "" - -msgid "Remove default (fallback) group for all unmatched entries." -msgstr "" - -msgid "Set default (fallback) group for all unmatched entries." -msgstr "" - -#: ipaserver/plugins/automember.py:586 -msgid "Default (fallback) group for entries to land" -msgstr "" - -msgid "Display information about the default (fallback) automember groups." -msgstr "" - -msgid "Delete an automember rule." -msgstr "" - -msgid "Search for automember rules." -msgstr "" - -msgid "Modify an automember rule." -msgstr "" - -#: ipaserver/plugins/automember.py:683 -msgid "Rebuild auto membership." -msgstr "" - -#: ipaserver/plugins/automember.py:693 -msgid "Rebuild membership for all members of a grouping" -msgstr "" - -#: ipaserver/plugins/automember.py:698 -msgid "Rebuild membership for specified users" -msgstr "" - -#: ipaserver/plugins/automember.py:703 -msgid "Rebuild membership for specified hosts" -msgstr "" - -#: ipaserver/plugins/automember.py:708 -msgid "No wait" -msgstr "" - -#: ipaserver/plugins/automember.py:709 -msgid "Don't wait for rebuilding membership" -msgstr "" - -msgid "Remove conditions from an automember rule." -msgstr "" - -#: ipaserver/plugins/automember.py:441 -msgid "Conditions that could not be removed" -msgstr "" - -#: ipaserver/plugins/automember.py:445 -msgid "Number of conditions removed" -msgstr "" - -msgid "Display information about an automember rule." -msgstr "" - -msgid "" -"\n" -"IPA certificate operations\n" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request " -"(CSR)\n" -"in PEM format.\n" -"\n" -"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" -"subject to values configured in the server.\n" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -"\n" -"In order to request a certificate:\n" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add " -"it)\n" -"\n" -"SEARCHING:\n" -"\n" -"Certificates may be searched on by certificate subject, serial number,\n" -"revocation reason, validity dates and the issued date.\n" -"\n" -"When searching on dates the _from date does a >= search and the _to date\n" -"does a <= search. When combined these are done as an AND.\n" -"\n" -"Dates are treated as GMT to match the dates in the certificates.\n" -"\n" -"The date format is YYYY-mm-dd.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -"\n" -" Search for certificates by hostname:\n" -" ipa cert-find --subject=ipaserver.example.com\n" -"\n" -" Search for revoked certificates by reason:\n" -" ipa cert-find --revocation-reason=5\n" -"\n" -" Search for certificates based on issuance date\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -"\n" -"The following revocation reasons are supported:\n" -"\n" -" * 0 - unspecified\n" -" * 1 - keyCompromise\n" -" * 2 - cACompromise\n" -" * 3 - affiliationChanged\n" -" * 4 - superseded\n" -" * 5 - cessationOfOperation\n" -" * 6 - certificateHold\n" -" * 8 - removeFromCRL\n" -" * 9 - privilegeWithdrawn\n" -" * 10 - aACompromise\n" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -msgstr "" - -msgid "Checks if any of the servers has the CA service enabled." -msgstr "" - -msgid "Search for existing certificates." -msgstr "" - -msgid "Match cn attribute in subject" -msgstr "" - -msgid "Reason" -msgstr "" - -msgid "Reason for revoking the certificate (0-10)" -msgstr "" - -msgid "minimum serial number" -msgstr "" - -msgid "maximum serial number" -msgstr "" - -msgid "match the common name exactly" -msgstr "" - -msgid "Valid not after from this date (YYYY-mm-dd)" -msgstr "" - -msgid "Valid not after to this date (YYYY-mm-dd)" -msgstr "" - -msgid "Valid not before from this date (YYYY-mm-dd)" -msgstr "" - -msgid "Valid not before to this date (YYYY-mm-dd)" -msgstr "" - -msgid "Issued on from this date (YYYY-mm-dd)" -msgstr "" - -msgid "Issued on to this date (YYYY-mm-dd)" -msgstr "" - -msgid "Revoked on from this date (YYYY-mm-dd)" -msgstr "" - -msgid "Revoked on to this date (YYYY-mm-dd)" -msgstr "" - -msgid "Maximum number of certs returned" -msgstr "" - -msgid "Take a revoked certificate off hold." -msgstr "" - -msgid "Serial number" -msgstr "" - -msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" -msgstr "" - -msgid "Submit a certificate signing request." -msgstr "" - -msgid "CSR" -msgstr "" - -msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "" - -msgid "automatically add the principal if it doesn't exist" -msgstr "" - -msgid "Revoke a certificate." -msgstr "" - -msgid "Retrieve an existing certificate." -msgstr "" - -msgid "Output filename" -msgstr "" - -msgid "File to store the certificate in." -msgstr "" - -msgid "Check the status of a certificate signing request." -msgstr "" - -msgid "Request id" -msgstr "" - -msgid "" -"\n" -"Groups of users\n" -"\n" -"Manage groups of users. By default, new groups are POSIX groups. You\n" -"can add the --nonposix option to the group-add command to mark a new group\n" -"as non-POSIX. You can use the --posix argument with the group-mod command\n" -"to convert a non-POSIX group into a POSIX group. POSIX groups cannot be\n" -"converted to non-POSIX groups.\n" -"\n" -"Every group must have a description.\n" -"\n" -"POSIX groups must have a Group ID (GID) number. Changing a GID is\n" -"supported but can have an impact on your file permissions. It is not " -"necessary\n" -"to supply a GID when creating a group. IPA will generate one automatically\n" -"if it is not provided.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new group:\n" -" ipa group-add --desc='local administrators' localadmins\n" -"\n" -" Add a new non-POSIX group:\n" -" ipa group-add --nonposix --desc='remote administrators' remoteadmins\n" -"\n" -" Convert a non-POSIX group to posix:\n" -" ipa group-mod --posix remoteadmins\n" -"\n" -" Add a new POSIX group with a specific Group ID number:\n" -" ipa group-add --gid=500 --desc='unix admins' unixadmins\n" -"\n" -" Add a new POSIX group and let IPA assign a Group ID number:\n" -" ipa group-add --desc='printer admins' printeradmins\n" -"\n" -" Remove a group:\n" -" ipa group-del unixadmins\n" -"\n" -" To add the \"remoteadmins\" group to the \"localadmins\" group:\n" -" ipa group-add-member --groups=remoteadmins localadmins\n" -"\n" -" Add multiple users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1 --users=test2 localadmins\n" -"\n" -" Remove a user from the \"localadmins\" group:\n" -" ipa group-remove-member --users=test2 localadmins\n" -"\n" -" Display information about a named group.\n" -" ipa group-show localadmins\n" -"\n" -"External group membership is designed to allow users from trusted domains\n" -"to be mapped to local POSIX groups in order to actually use IPA resources.\n" -"External members should be added to groups that specifically created as\n" -"external and non-POSIX. Such group later should be included into one of " -"POSIX\n" -"groups.\n" -"\n" -"An external group member is currently a Security Identifier (SID) as defined " -"by\n" -"the trusted domain. When adding external group members, it is possible to\n" -"specify them in either SID, or DOM\\name, or name@domain format. IPA will " -"attempt\n" -"to resolve passed name to SID with the use of Global Catalog of the trusted " -"domain.\n" -"\n" -"Example:\n" -"\n" -"1. Create group for the trusted domain admins' mapping and their local POSIX " -"group:\n" -"\n" -" ipa group-add --desc=' admins external map' ad_admins_external " -"--external\n" -" ipa group-add --desc=' admins' ad_admins\n" -"\n" -"2. Add security identifier of Domain Admins of the to the " -"ad_admins_external\n" -" group:\n" -"\n" -" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" -"\n" -"3. Allow members of ad_admins_external group to be associated with ad_admins " -"POSIX group:\n" -"\n" -" ipa group-add-member ad_admins --groups ad_admins_external\n" -"\n" -"4. List members of external members of ad_admins_external group to see their " -"SIDs:\n" -"\n" -" ipa group-show ad_admins_external\n" -msgstr "" - -msgid "GID (use this option to set it manually)" -msgstr "" - -msgid "Indirect Member users" -msgstr "" - -msgid "Indirect Member groups" -msgstr "" - -msgid "Create a new group." -msgstr "" - -msgid "Create as a non-POSIX group" -msgstr "" - -msgid "Allow adding external non-IPA members from trusted domains" -msgstr "" - -msgid "Add members to a group." -msgstr "" - -msgid "External member" -msgstr "" - -msgid "Members of a trusted domain in DOM\\name or name@domain form" -msgstr "" - -msgid "Delete group." -msgstr "" - -msgid "Detach a managed group from a user." -msgstr "" - -msgid "Search for groups." -msgstr "" - -msgid "search for private groups" -msgstr "" - -msgid "search for POSIX groups" -msgstr "" - -msgid "" -"search for groups with support of external non-IPA members from trusted " -"domains" -msgstr "" - -msgid "search for non-POSIX groups" -msgstr "" - -msgid "Results should contain primary key attribute only (\"group-name\")" -msgstr "" - -msgid "Search for groups with these member users." -msgstr "" - -msgid "Search for groups without these member users." -msgstr "" - -msgid "Search for groups with these member groups." -msgstr "" - -msgid "Search for groups without these member groups." -msgstr "" - -msgid "Search for groups with these member of groups." -msgstr "" - -msgid "Search for groups without these member of groups." -msgstr "" - -msgid "Search for groups with these member of netgroups." -msgstr "" - -msgid "Search for groups without these member of netgroups." -msgstr "" - -msgid "Search for groups with these member of roles." -msgstr "" - -msgid "Search for groups without these member of roles." -msgstr "" - -msgid "Search for groups with these member of HBAC rules." -msgstr "" - -msgid "Search for groups without these member of HBAC rules." -msgstr "" - -msgid "Search for groups with these member of sudo rules." -msgstr "" - -msgid "Search for groups without these member of sudo rules." -msgstr "" - -msgid "Modify a group." -msgstr "" - -msgid "change to a POSIX group" -msgstr "" - -msgid "change to support external non-IPA members from trusted domains" -msgstr "" - -msgid "Rename the group object" -msgstr "" - -msgid "Remove members from a group." -msgstr "" - -msgid "Display information about a named group." -msgstr "" - -msgid "" -"\n" -"Simulate use of Host-based access controls\n" -"\n" -"HBAC rules control who can access what services on what hosts.\n" -"You can use HBAC to control which users or groups can access a service,\n" -"or group of services, on a target host.\n" -"\n" -"Since applying HBAC rules implies use of a production environment,\n" -"this plugin aims to provide simulation of HBAC rules evaluation without\n" -"having access to the production environment.\n" -"\n" -" Test user coming to a service on a named host against\n" -" existing enabled rules.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--sizelimit= ]\n" -"\n" -" --user, --host, and --service are mandatory, others are optional.\n" -"\n" -" If --rules is specified simulate enabling of the specified rules and test\n" -" the login of the user using only these rules.\n" -"\n" -" If --enabled is specified, all enabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --disabled is specified, all disabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --nodetail is specified, do not return information about rules matched/" -"not matched.\n" -"\n" -" If both --rules and --enabled are specified, apply simulation to --rules " -"_and_\n" -" all IPA enabled rules.\n" -"\n" -" If no --rules specified, simulation is run against all IPA enabled rules.\n" -" By default there is a IPA-wide limit to number of entries fetched, you can " -"change it\n" -" with --sizelimit option.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Use all enabled HBAC rules in IPA database to simulate:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 2. Disable detailed summary of how rules were applied:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -"\n" -" 3. Test explicitly specified HBAC rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: myrule\n" -"\n" -" 4. Use all enabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule --enabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 5. Test all disabled HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: new-rule\n" -"\n" -" 6. Test all disabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --rules=myrule --rules=my-second-rule --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -"\n" -" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" -" --enabled --disabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Not matched rules: new-rule\n" -" Matched rules: allow_all\n" -"\n" -"\n" -"HBACTEST AND TRUSTED DOMAINS\n" -"\n" -"When an external trusted domain is configured in IPA, HBAC rules are also " -"applied\n" -"on users accessing IPA resources from the trusted domain. Trusted domain " -"users and\n" -"groups (and their SIDs) can be then assigned to external groups which can " -"be\n" -"members of POSIX groups in IPA which can be used in HBAC rules and thus " -"allowing\n" -"access to resources protected by the HBAC system.\n" -"\n" -"hbactest plugin is capable of testing access for both local IPA users and " -"users\n" -"from the trusted domains, either by a fully qualified user name or by user " -"SID.\n" -"Such user names need to have a trusted domain specified as a short name\n" -"(DOMAIN\\Administrator) or with a user principal name (UPN), " -"Administrator@ad.test.\n" -"\n" -"Please note that hbactest executed with a trusted domain user as --user " -"parameter\n" -"can be only run by members of \"trust admins\" group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Test if a user from a trusted domain specified by its shortname " -"matches any\n" -" rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 2. Test if a user from a trusted domain specified by its domain name " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 3. Test if a user from a trusted domain specified by its SID matches any " -"rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 4. Test if other user from a trusted domain specified by its SID matches " -"any rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -"\n" -" 5. Test if other user from a trusted domain specified by its shortname " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -msgstr "" - -#: ipaserver/plugins/hbactest.py:256 -msgid "Simulate use of Host-based access controls" -msgstr "" - -#: ipaserver/plugins/hbactest.py:281 -msgid "Target host" -msgstr "" - -#: ipaserver/plugins/hbactest.py:289 -msgid "Rules to test. If not specified, --enabled is assumed" -msgstr "" - -#: ipaserver/plugins/hbactest.py:293 -msgid "Hide details which rules are matched, not matched, or invalid" -msgstr "" - -#: ipaserver/plugins/hbactest.py:297 -msgid "Include all enabled IPA rules into test [default]" -msgstr "" - -#: ipaserver/plugins/hbactest.py:301 -msgid "Include all disabled IPA rules into test" -msgstr "" - -#: ipaserver/plugins/hbactest.py:305 -msgid "Maximum number of rules to process when no --rules is specified" -msgstr "" - -#: ipaserver/plugins/hbactest.py:260 -msgid "Warning" -msgstr "" - -#: ipaserver/plugins/hbactest.py:261 -msgid "Matched rules" -msgstr "" - -#: ipaserver/plugins/hbactest.py:262 -msgid "Not matched rules" -msgstr "" - -#: ipaserver/plugins/hbactest.py:263 -msgid "Non-existent or invalid rules" -msgstr "" - -#: ipaserver/plugins/hbactest.py:264 -msgid "Result of simulation" -msgstr "" - -msgid "" -"\n" -"Cross-realm trusts\n" -"\n" -"Manage trust relationship between IPA and Active Directory domains.\n" -"\n" -"In order to allow users from a remote domain to access resources in IPA\n" -"domain, trust relationship needs to be established. Currently IPA supports\n" -"only trusts between IPA and Active Directory domains under control of " -"Windows\n" -"Server 2008 or later, with functional level 2008 or later.\n" -"\n" -"Please note that DNS on both IPA and Active Directory domain sides should " -"be\n" -"configured properly to discover each other. Trust relationship relies on\n" -"ability to discover special resources in the other domain via DNS records.\n" -"\n" -"Examples:\n" -"\n" -"1. Establish cross-realm trust with Active Directory using AD administrator\n" -" credentials:\n" -"\n" -" ipa trust-add --type=ad --admin --" -"password\n" -"\n" -"2. List all existing trust relationships:\n" -"\n" -" ipa trust-find\n" -"\n" -"3. Show details of the specific trust relationship:\n" -"\n" -" ipa trust-show \n" -"\n" -"4. Delete existing trust relationship:\n" -"\n" -" ipa trust-del \n" -"\n" -"Once trust relationship is established, remote users will need to be mapped\n" -"to local POSIX groups in order to actually use IPA resources. The mapping " -"should\n" -"be done via use of external membership of non-POSIX group and then this " -"group\n" -"should be included into one of local POSIX groups.\n" -"\n" -"Example:\n" -"\n" -"1. Create group for the trusted domain admins' mapping and their local POSIX " -"group:\n" -"\n" -" ipa group-add --desc=' admins external map' ad_admins_external " -"--external\n" -" ipa group-add --desc=' admins' ad_admins\n" -"\n" -"2. Add security identifier of Domain Admins of the to the " -"ad_admins_external\n" -" group:\n" -"\n" -" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" -"\n" -"3. Allow members of ad_admins_external group to be associated with ad_admins " -"POSIX group:\n" -"\n" -" ipa group-add-member ad_admins --groups ad_admins_external\n" -"\n" -"4. List members of external members of ad_admins_external group to see their " -"SIDs:\n" -"\n" -" ipa group-show ad_admins_external\n" -"\n" -"\n" -"GLOBAL TRUST CONFIGURATION\n" -"\n" -"When IPA AD trust subpackage is installed and ipa-adtrust-install is run,\n" -"a local domain configuration (SID, GUID, NetBIOS name) is generated. These\n" -"identifiers are then used when communicating with a trusted domain of the\n" -"particular type.\n" -"\n" -"1. Show global trust configuration for Active Directory type of trusts:\n" -"\n" -" ipa trustconfig-show --type ad\n" -"\n" -"2. Modify global configuration for all trusts of Active Directory type and " -"set\n" -" a different fallback primary group (fallback primary group GID is used " -"as\n" -" a primary user GID if user authenticating to IPA domain does not have any " -"other\n" -" primary GID already set):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"alternative AD " -"group\"\n" -"\n" -"3. Change primary fallback group back to default hidden group (any group " -"with\n" -" posixGroup object class is allowed):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" -"\"\n" -msgstr "" - -#: ipaserver/plugins/internal.py:1537 ipaserver/plugins/trust.py:541 -#: ipaserver/plugins/trust.py:1585 -msgid "Domain NetBIOS name" -msgstr "" - -#: ipaserver/plugins/internal.py:1538 ipaserver/plugins/trust.py:545 -#: ipaserver/plugins/trust.py:1588 -msgid "Domain Security Identifier" -msgstr "" - -msgid "SID blacklist incoming" -msgstr "" - -msgid "SID blacklist outgoing" -msgstr "" - -msgid "Security Identifier" -msgstr "" - -msgid "NetBIOS name" -msgstr "" - -msgid "Domain GUID" -msgstr "" - -msgid "Fallback primary group" -msgstr "" - -#: ipaserver/plugins/certmap.py:298 -msgid "Domain name" -msgstr "" - -msgid "Trusted domain partner" -msgstr "" - -msgid "Determine whether ipa-adtrust-install has been run on this system" -msgstr "" - -msgid "" -"Determine whether Schema Compatibility plugin is configured to serve trusted " -"domain users and groups" -msgstr "" - -msgid "Determine whether ipa-adtrust-install has been run with sidgen task" -msgstr "" - -msgid "" -"\n" -"Add new trust to use.\n" -"\n" -"This command establishes trust relationship to another domain\n" -"which becomes 'trusted'. As result, users of the trusted domain\n" -"may access resources of this domain.\n" -"\n" -"Only trusts to Active Directory domains are supported right now.\n" -"\n" -"The command can be safely run multiple times against the same domain,\n" -"this will cause change to trust relationship credentials on both\n" -"sides.\n" -" " -msgstr "" - -msgid "Trust type (ad for Active Directory, default)" -msgstr "" - -#: ipaserver/plugins/trust.py:1798 -msgid "Active Directory domain administrator" -msgstr "" - -#: ipaserver/plugins/trust.py:1802 -msgid "Active Directory domain administrator's password" -msgstr "" - -#: ipaserver/plugins/trust.py:1807 -msgid "Domain controller for the Active Directory domain (optional)" -msgstr "" - -msgid "Shared secret for the trust" -msgstr "" - -msgid "First Posix ID of the range reserved for the trusted domain" -msgstr "" - -msgid "Size of the ID range reserved for the trusted domain" -msgstr "" - -#: ipaserver/plugins/idrange.py:253 ipaserver/plugins/internal.py:1246 -#: ipaserver/plugins/trust.py:710 -msgid "Range type" -msgstr "" - -msgid "" -"Type of trusted domain ID range, one of ipa-ad-trust-posix, ipa-ad-trust" -msgstr "" - -msgid "Delete a trust." -msgstr "" - -msgid "Refresh list of the domains associated with the trust" -msgstr "" - -msgid "Search for trusts." -msgstr "" - -msgid "Results should contain primary key attribute only (\"realm\")" -msgstr "" - -msgid "" -"\n" -"Modify a trust (for future use).\n" -"\n" -" Currently only the default option to modify the LDAP attributes is\n" -" available. More specific options will be added in coming releases.\n" -" " -msgstr "" - -msgid "Resolve security identifiers of users and groups in trusted domains" -msgstr "" - -msgid "Security Identifiers (SIDs)" -msgstr "" - -msgid "Display information about a trust." -msgstr "" - -msgid "Modify global trust configuration." -msgstr "" - -msgid "Show global trust configuration." -msgstr "" - -msgid "Allow access from the trusted domain" -msgstr "" - -msgid "Remove information about the domain associated with the trust." -msgstr "" - -msgid "Disable use of IPA resources by the domain of the trust" -msgstr "" - -msgid "Allow use of IPA resources by the domain of the trust" -msgstr "" - -msgid "Search domains of the trust" -msgstr "" - -msgid "Results should contain primary key attribute only (\"domain\")" -msgstr "" - -msgid "Modify trustdomain of the trust" -msgstr "" - -msgid "" -"\n" -"ID ranges\n" -"\n" -"Manage ID ranges used to map Posix IDs to SIDs and back.\n" -"\n" -"There are two type of ID ranges which are both handled by this utility:\n" -"\n" -" - the ID ranges of the local domain\n" -" - the ID ranges of trusted remote domains\n" -"\n" -"Both types have the following attributes in common:\n" -"\n" -" - base-id: the first ID of the Posix ID range\n" -" - range-size: the size of the range\n" -"\n" -"With those two attributes a range object can reserve the Posix IDs starting\n" -"with base-id up to but not including base-id+range-size exclusively.\n" -"\n" -"Additionally an ID range of the local domain may set\n" -" - rid-base: the first RID(*) of the corresponding RID range\n" -" - secondary-rid-base: first RID of the secondary RID range\n" -"\n" -"and an ID range of a trusted domain must set\n" -" - rid-base: the first RID of the corresponding RID range\n" -" - sid: domain SID of the trusted domain\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for a trusted domain\n" -"\n" -"Since there might be more than one trusted domain the domain SID must be " -"given\n" -"while creating the ID range.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"This ID range is then used by the IPA server and the SSSD IPA provider to\n" -"assign Posix UIDs to users from the trusted domain.\n" -"\n" -"If e.g. a range for a trusted domain is configured with the following " -"values:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " -"So\n" -"RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for the local domain\n" -"\n" -"To create an ID range for the local domain it is not necessary to specify a\n" -"domain SID. But since it is possible that a user and a group can have the " -"same\n" -"value as Posix ID a second RID interval is needed to handle conflicts.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=1000 --secondary-rid-base=1000000 local_range\n" -"\n" -"The data from the ID ranges of the local domain are used by the IPA server\n" -"internally to assign SIDs to IPA users and groups. The SID will then be " -"stored\n" -"in the user or group objects.\n" -"\n" -"If e.g. the ID range for the local domain is configured with the values " -"from\n" -"the example above then a new user with the UID 1200007 will get the RID " -"1007.\n" -"If this RID is already used by a group the RID will be 1000007. This can " -"only\n" -"happen if a user or a group object was created with a fixed ID because the\n" -"automatic assignment will not assign the same ID twice. Since there are " -"only\n" -"users and groups sharing the same ID namespace it is sufficient to have " -"only\n" -"one fallback range to handle conflicts.\n" -"\n" -"To find the Posix ID for a given RID from the local domain it has to be\n" -"checked first if the RID falls in the primary or secondary RID range and\n" -"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" -"and the base-id has to be added to get the Posix ID.\n" -"\n" -"Typically the creation of ID ranges happens behind the scenes and this CLI\n" -"must not be used at all. The ID range for the local domain will be created\n" -"during installation or upgrade from an older version. The ID range for a\n" -"trusted domain will be created together with the trust by 'ipa trust-" -"add ...'.\n" -"\n" -"USE CASES:\n" -"\n" -" Add an ID range from a transitively trusted domain\n" -"\n" -" If the trusted domain (A) trusts another domain (B) as well and this " -"trust\n" -" is transitive 'ipa trust-add domain-A' will only create a range for\n" -" domain A. The ID range for domain B must be added manually.\n" -"\n" -" Add an additional ID range for the local domain\n" -"\n" -" If the ID range of the local domain is exhausted, i.e. no new IDs can " -"be\n" -" assigned to Posix users or groups by the DNA plugin, a new range has to " -"be\n" -" created to allow new users and groups to be added. (Currently there is " -"no\n" -" connection between this range CLI and the DNA plugin, but a future " -"version\n" -" might be able to modify the configuration of the DNS plugin as well)\n" -"\n" -"In general it is not necessary to modify or delete ID ranges. If there is " -"no\n" -"other way to achieve a certain configuration than to modify or delete an ID\n" -"range it should be done with great care. Because UIDs are stored in the " -"file\n" -"system and are used for access control it might be possible that users are\n" -"allowed to access files of other users if an ID range got deleted and " -"reused\n" -"for a different domain.\n" -"\n" -"(*) The RID is typically the last integer of a user or group SID which " -"follows\n" -"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " -"from\n" -"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 is the RID of " -"the\n" -"user. RIDs are unique in a domain, 32bit values and are used for users and\n" -"groups.\n" -"\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -msgstr "" - -#: ipaserver/plugins/idrange.py:219 -msgid "Range name" -msgstr "" - -#: ipaserver/plugins/idrange.py:224 -msgid "First Posix ID of the range" -msgstr "" - -#: ipaserver/plugins/idrange.py:230 -msgid "Number of IDs in the range" -msgstr "" - -#: ipaserver/plugins/idrange.py:236 -msgid "First RID of the corresponding RID range" -msgstr "" - -#: ipaserver/plugins/idrange.py:240 -msgid "First RID of the secondary RID range" -msgstr "" - -#: ipaserver/plugins/idrange.py:245 ipaserver/plugins/idrange.py:655 -msgid "Domain SID of the trusted domain" -msgstr "" - -#: ipaserver/plugins/idrange.py:250 ipaserver/plugins/idrange.py:663 -msgid "Name of the trusted domain" -msgstr "" - -msgid "ID range type, one of ipa-ad-trust-posix, ipa-ad-trust, ipa-local" -msgstr "" - -msgid "" -"\n" -"Add new ID range.\n" -"\n" -" To add a new ID range you always have to specify\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Additionally\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" may be given for a new ID range for the local domain while\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" must be given to add a new range for a trusted AD domain.\n" -"\n" -" WARNING:\n" -"\n" -" DNA plugin in 389-ds will allocate IDs based on the ranges configured " -"for the\n" -" local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -" on the local ranges set via this family of commands.\n" -"\n" -" Manual configuration change has to be done in the DNA plugin " -"configuration for\n" -" the new local range. Specifically, The dnaNextRange attribute of " -"'cn=Posix\n" -" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has " -"to be\n" -" modified to match the new range.\n" -" " -msgstr "" - -#: ipaserver/plugins/idrange.py:556 -msgid "Delete an ID range." -msgstr "" - -#: ipaserver/plugins/idrange.py:604 -msgid "Search for ranges." -msgstr "" - -msgid "Modify ID range." -msgstr "" - -#: ipaserver/plugins/idrange.py:627 -msgid "Display information about a range." -msgstr "" - -msgid "" -"\n" -"OTP Tokens\n" -"\n" -"Manage OTP tokens.\n" -"\n" -"IPA supports the use of OTP tokens for multi-factor authentication. This\n" -"code enables the management of OTP tokens.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new token:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" -"\n" -" Examine the token:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -"\n" -" Change the vendor:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -"\n" -" Delete a token:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:160 ipaserver/plugins/subid.py:136 -msgid "Unique ID" -msgstr "" - -#: ipaserver/plugins/otptoken.py:166 -msgid "Type of the token" -msgstr "" - -#: ipaserver/plugins/otptoken.py:175 -msgid "Token description (informational only)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:179 ipaserver/plugins/internal.py:1372 -#: ipaserver/plugins/subid.py:149 ipaserver/plugins/subid.py:467 -msgid "Owner" -msgstr "" - -#: ipaserver/plugins/otptoken.py:180 -msgid "Assigned user of the token (default: self)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:184 -msgid "Assigned manager of the token (default: self)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:189 ipaserver/plugins/internal.py:1933 -msgid "Disabled" -msgstr "" - -#: ipaserver/plugins/otptoken.py:190 -msgid "Mark the token as disabled (default: false)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:194 -msgid "Validity start" -msgstr "" - -#: ipaserver/plugins/otptoken.py:195 -msgid "First date/time the token can be used" -msgstr "" - -#: ipaserver/plugins/otptoken.py:199 -msgid "Validity end" -msgstr "" - -#: ipaserver/plugins/otptoken.py:200 -msgid "Last date/time the token can be used" -msgstr "" - -#: ipaserver/plugins/otptoken.py:204 -msgid "Vendor" -msgstr "" - -#: ipaserver/plugins/otptoken.py:205 -msgid "Token vendor name (informational only)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:209 -msgid "Model" -msgstr "" - -#: ipaserver/plugins/otptoken.py:210 -msgid "Token model (informational only)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:214 -msgid "Serial" -msgstr "" - -#: ipaserver/plugins/otptoken.py:215 -msgid "Token serial (informational only)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:220 -msgid "Token secret (Base32; default: random)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:230 -msgid "Token hash algorithm" -msgstr "" - -#: ipaserver/plugins/otptoken.py:238 -msgid "Digits" -msgstr "" - -#: ipaserver/plugins/otptoken.py:239 -msgid "Number of digits each token code will have" -msgstr "" - -#: ipaserver/plugins/otptoken.py:247 -msgid "Clock offset" -msgstr "" - -#: ipaserver/plugins/otptoken.py:248 -msgid "TOTP token / IPA server time difference" -msgstr "" - -#: ipaserver/plugins/otptoken.py:255 -msgid "Clock interval" -msgstr "" - -#: ipaserver/plugins/otptoken.py:256 -msgid "Length of TOTP token code validity" -msgstr "" - -#: ipaserver/plugins/otptoken.py:264 -msgid "Counter" -msgstr "" - -#: ipaserver/plugins/otptoken.py:265 -msgid "Initial counter for the HOTP token" -msgstr "" - -#: ipaserver/plugins/otptoken.py:280 -msgid "Add a new OTP token." -msgstr "" - -#: ipaserver/plugins/otptoken.py:284 -msgid "(deprecated)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:285 -msgid "Do not display QR code" -msgstr "" - -#: ipaserver/plugins/otptoken.py:463 -msgid "Add users that can manage this token." -msgstr "" - -#: ipaserver/plugins/otptoken.py:366 -msgid "Delete an OTP token." -msgstr "" - -#: ipaserver/plugins/otptoken.py:421 -msgid "Search for OTP token." -msgstr "" - -msgid "Results should contain primary key attribute only (\"id\")" -msgstr "" - -#: ipaserver/plugins/otptoken.py:372 -msgid "Modify a OTP token." -msgstr "" - -msgid "Rename the OTP token object" -msgstr "" - -#: ipaserver/plugins/otptoken.py:450 -msgid "Display information about an OTP token." -msgstr "" - msgid "" "\n" "Sudo Rules\n" @@ -8435,13 +8989,13 @@ msgstr "" msgid "Display Sudo Rule." msgstr "" -#: ipaserver/plugins/cert.py:1575 ipaserver/plugins/pkinit.py:72 -#: ipaserver/plugins/baseldap.py:1976 ipaserver/plugins/serverrole.py:124 +#: ipaserver/plugins/pkinit.py:72 ipaserver/plugins/serverrole.py:124 +#: ipaserver/plugins/baseldap.py:1980 ipaserver/plugins/cert.py:1575 msgid "Time limit of search in seconds (0 is unlimited)" msgstr "" -#: ipaserver/plugins/cert.py:1580 ipaserver/plugins/pkinit.py:80 -#: ipaserver/plugins/baseldap.py:1983 ipaserver/plugins/serverrole.py:132 +#: ipaserver/plugins/pkinit.py:80 ipaserver/plugins/serverrole.py:132 +#: ipaserver/plugins/baseldap.py:1987 ipaserver/plugins/cert.py:1580 msgid "Maximum number of entries returned (0 is unlimited)" msgstr "" @@ -8498,7 +9052,7 @@ msgstr "" msgid "Service category the ACL applies to" msgstr "" -#: ipaserver/plugins/internal.py:598 ipaserver/plugins/caacl.py:216 +#: ipaserver/plugins/internal.py:598 msgid "Profiles" msgstr "" @@ -8556,6 +9110,124 @@ msgstr "" msgid "Display the properties of a CA ACL." msgstr "" +msgid "Principal for this certificate (e.g. HTTP/test.example.com)" +msgstr "" + +#: ipaserver/plugins/certprofile.py:122 ipaserver/plugins/cert.py:578 +msgid "Profile ID" +msgstr "" + +msgid "Certificate Profile to use" +msgstr "" + +msgid "" +"\n" +"Manage Certificate Profiles\n" +"\n" +"Certificate Profiles are used by Certificate Authority (CA) in the signing " +"of\n" +"certificates to determine if a Certificate Signing Request (CSR) is " +"acceptable,\n" +"and if so what features and extensions will be present on the certificate.\n" +"\n" +"The Certificate Profile format is the property-list format understood by " +"the\n" +"Dogtag or Red Hat Certificate System CA.\n" +"\n" +"PROFILE ID SYNTAX:\n" +"\n" +"A Profile ID is a string without spaces or punctuation starting with a " +"letter\n" +"and followed by a sequence of letters, digits or underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Import a profile that will not store issued certificates:\n" +" ipa certprofile-import ShortLivedUserCert --file UserCert.profile " +"--desc \"User Certificates\" --store=false\n" +"\n" +" Delete a certificate profile:\n" +" ipa certprofile-del ShortLivedUserCert\n" +"\n" +" Show information about a profile:\n" +" ipa certprofile-show ShortLivedUserCert\n" +"\n" +" Save profile configuration to a file:\n" +" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" +"\n" +" Search for profiles that do not store certificates:\n" +" ipa certprofile-find --store=false\n" +"\n" +"PROFILE CONFIGURATION FORMAT:\n" +"\n" +"The profile configuration format is the raw property-list format\n" +"used by Dogtag Certificate System. The XML format is not supported.\n" +"\n" +"The following restrictions apply to profiles managed by IPA:\n" +"\n" +"- When importing a profile the \"profileId\" field, if present, must\n" +" match the ID given on the command line.\n" +"\n" +"- The \"classId\" field must be set to \"caEnrollImpl\"\n" +"\n" +"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" +"\n" +"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" +" class must be used.\n" +msgstr "" + +#: ipaserver/plugins/certprofile.py:123 +msgid "Profile ID for referring to this profile" +msgstr "" + +#: ipaserver/plugins/certprofile.py:132 +msgid "Profile description" +msgstr "" + +#: ipaserver/plugins/certprofile.py:133 +msgid "Brief description of this profile" +msgstr "" + +#: ipaserver/plugins/certprofile.py:138 +msgid "Store issued certificates" +msgstr "" + +#: ipaserver/plugins/certprofile.py:139 +msgid "Whether to store certs issued using this profile" +msgstr "" + +#: ipaserver/plugins/certprofile.py:281 +msgid "Delete a Certificate Profile." +msgstr "" + +#: ipaserver/plugins/certprofile.py:188 +msgid "Search for Certificate Profiles." +msgstr "" + +#: ipaserver/plugins/certprofile.py:221 +msgid "Import a Certificate Profile." +msgstr "" + +#: ipaserver/plugins/certprofile.py:226 +msgid "Filename of a raw profile. The XML format is not supported." +msgstr "" + +#: ipaserver/plugins/certprofile.py:304 +msgid "Modify Certificate Profile configuration." +msgstr "" + +#: ipaserver/plugins/certprofile.py:310 +msgid "File containing profile configuration" +msgstr "" + +#: ipaserver/plugins/certprofile.py:200 +msgid "Display the properties of a Certificate Profile." +msgstr "" + +#: ipaserver/plugins/certprofile.py:204 +msgid "Write profile configuration to file" +msgstr "" + msgid "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)" msgstr "" @@ -8591,6 +9263,218 @@ msgstr "" msgid "Remove certificates from host entry" msgstr "" +msgid "" +"\n" +"ID ranges\n" +"\n" +"Manage ID ranges used to map Posix IDs to SIDs and back.\n" +"\n" +"There are two type of ID ranges which are both handled by this utility:\n" +"\n" +" - the ID ranges of the local domain\n" +" - the ID ranges of trusted remote domains\n" +"\n" +"Both types have the following attributes in common:\n" +"\n" +" - base-id: the first ID of the Posix ID range\n" +" - range-size: the size of the range\n" +"\n" +"With those two attributes a range object can reserve the Posix IDs starting\n" +"with base-id up to but not including base-id+range-size exclusively.\n" +"\n" +"Additionally an ID range of the local domain may set\n" +" - rid-base: the first RID(*) of the corresponding RID range\n" +" - secondary-rid-base: first RID of the secondary RID range\n" +"\n" +"and an ID range of a trusted domain must set\n" +" - rid-base: the first RID of the corresponding RID range\n" +" - sid: domain SID of the trusted domain\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for a trusted domain\n" +"\n" +"Since there might be more than one trusted domain the domain SID must be " +"given\n" +"while creating the ID range.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"This ID range is then used by the IPA server and the SSSD IPA provider to\n" +"assign Posix UIDs to users from the trusted domain.\n" +"\n" +"If e.g. a range for a trusted domain is configured with the following " +"values:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " +"So\n" +"RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for the local domain\n" +"\n" +"To create an ID range for the local domain it is not necessary to specify a\n" +"domain SID. But since it is possible that a user and a group can have the " +"same\n" +"value as Posix ID a second RID interval is needed to handle conflicts.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=1000 --secondary-rid-base=1000000 local_range\n" +"\n" +"The data from the ID ranges of the local domain are used by the IPA server\n" +"internally to assign SIDs to IPA users and groups. The SID will then be " +"stored\n" +"in the user or group objects.\n" +"\n" +"If e.g. the ID range for the local domain is configured with the values " +"from\n" +"the example above then a new user with the UID 1200007 will get the RID " +"1007.\n" +"If this RID is already used by a group the RID will be 1000007. This can " +"only\n" +"happen if a user or a group object was created with a fixed ID because the\n" +"automatic assignment will not assign the same ID twice. Since there are " +"only\n" +"users and groups sharing the same ID namespace it is sufficient to have " +"only\n" +"one fallback range to handle conflicts.\n" +"\n" +"To find the Posix ID for a given RID from the local domain it has to be\n" +"checked first if the RID falls in the primary or secondary RID range and\n" +"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" +"and the base-id has to be added to get the Posix ID.\n" +"\n" +"Typically the creation of ID ranges happens behind the scenes and this CLI\n" +"must not be used at all. The ID range for the local domain will be created\n" +"during installation or upgrade from an older version. The ID range for a\n" +"trusted domain will be created together with the trust by 'ipa trust-" +"add ...'.\n" +"\n" +"USE CASES:\n" +"\n" +" Add an ID range from a transitively trusted domain\n" +"\n" +" If the trusted domain (A) trusts another domain (B) as well and this " +"trust\n" +" is transitive 'ipa trust-add domain-A' will only create a range for\n" +" domain A. The ID range for domain B must be added manually.\n" +"\n" +" Add an additional ID range for the local domain\n" +"\n" +" If the ID range of the local domain is exhausted, i.e. no new IDs can " +"be\n" +" assigned to Posix users or groups by the DNA plugin, a new range has to " +"be\n" +" created to allow new users and groups to be added. (Currently there is " +"no\n" +" connection between this range CLI and the DNA plugin, but a future " +"version\n" +" might be able to modify the configuration of the DNS plugin as well)\n" +"\n" +"In general it is not necessary to modify or delete ID ranges. If there is " +"no\n" +"other way to achieve a certain configuration than to modify or delete an ID\n" +"range it should be done with great care. Because UIDs are stored in the " +"file\n" +"system and are used for access control it might be possible that users are\n" +"allowed to access files of other users if an ID range got deleted and " +"reused\n" +"for a different domain.\n" +"\n" +"(*) The RID is typically the last integer of a user or group SID which " +"follows\n" +"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " +"from\n" +"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 is the RID of " +"the\n" +"user. RIDs are unique in a domain, 32bit values and are used for users and\n" +"groups.\n" +"\n" +"=======\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +"=======\n" +msgstr "" + +msgid "" +"\n" +"Add new ID range.\n" +"\n" +" To add a new ID range you always have to specify\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Additionally\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" may be given for a new ID range for the local domain while\n" +"\n" +" --rid-base\n" +" --dom-sid\n" +"\n" +" must be given to add a new range for a trusted AD domain.\n" +"\n" +"=======\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +"=======\n" +" " +msgstr "" + +msgid "" +"\n" +"Modify ID range.\n" +"\n" +"=======\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +"=======\n" +" " +msgstr "" + #: ipaserver/plugins/idviews.py:80 msgid "Fallback to AD DC LDAP" msgstr "" @@ -8601,7 +9485,7 @@ msgid "" "way trusts only." msgstr "" -#: ipaserver/plugins/idviews.py:440 +#: ipaserver/plugins/idviews.py:441 msgid "" "Applies ID View to specified hosts or current members of specified " "hostgroups. If any other ID View is applied to the host, it is overridden." @@ -8625,6 +9509,10 @@ msgid "" "to onelevel" msgstr "" +#: ipaserver/plugins/otptoken.py:469 +msgid "Remove users that can manage this token." +msgstr "" + #: ipaserver/plugins/permission.py:321 msgid "Target DN subtree" msgstr "" @@ -8660,12 +9548,12 @@ msgid "" " ipa server-show ipa.example.com\n" msgstr "" -#: ipaserver/plugins/server.py:103 ipaserver/plugins/dnsserver.py:112 -#: ipaserver/plugins/serverrole.py:58 +#: ipaserver/plugins/dnsserver.py:112 ipaserver/plugins/pkinit.py:47 +#: ipaserver/plugins/serverrole.py:58 ipaserver/plugins/server.py:103 msgid "Server name" msgstr "" -#: ipaserver/plugins/server.py:104 ipaserver/plugins/serverrole.py:59 +#: ipaserver/plugins/serverrole.py:59 ipaserver/plugins/server.py:104 msgid "IPA server hostname" msgstr "" @@ -9117,6 +10005,14 @@ msgid "" " " msgstr "" +#: ipaserver/plugins/trust.py:718 +msgid "Two-way trust" +msgstr "" + +msgid "" +"Establish bi-directional trust. By default trust is inbound one-way only." +msgstr "" + #: ipaserver/plugins/user.py:1161 msgid "Preserved user" msgstr "" @@ -9306,31 +10202,31 @@ msgstr "" msgid "Vault public key" msgstr "" -#: ipaserver/plugins/vault.py:622 +#: ipaserver/plugins/vault.py:620 msgid "Owner users" msgstr "" -#: ipaserver/plugins/vault.py:627 +#: ipaserver/plugins/vault.py:625 msgid "Owner groups" msgstr "" -#: ipaserver/plugins/vault.py:632 +#: ipaserver/plugins/vault.py:630 msgid "Owner services" msgstr "" -#: ipaserver/plugins/vault.py:327 ipaserver/plugins/vault.py:637 +#: ipaserver/plugins/vault.py:325 ipaserver/plugins/vault.py:635 msgid "Failed owners" msgstr "" -#: ipaserver/plugins/vault.py:642 +#: ipaserver/plugins/vault.py:640 msgid "Vault service" msgstr "" -#: ipaserver/plugins/vault.py:336 ipaserver/plugins/vault.py:647 +#: ipaserver/plugins/vault.py:334 ipaserver/plugins/vault.py:645 msgid "Shared vault" msgstr "" -#: ipaserver/plugins/vault.py:652 +#: ipaserver/plugins/vault.py:650 msgid "Vault user" msgstr "" @@ -9358,15 +10254,15 @@ msgstr "" msgid "owner service" msgstr "" -#: ipaserver/plugins/vault.py:1172 +#: ipaserver/plugins/vault.py:1211 msgid "Owners that could not be added" msgstr "" -#: ipaserver/plugins/vault.py:1177 +#: ipaserver/plugins/vault.py:1216 msgid "Number of owners added" msgstr "" -#: ipaserver/plugins/vault.py:1101 +#: ipaserver/plugins/vault.py:1127 msgid "Session key wrapped with transport certificate" msgstr "" @@ -9394,11 +10290,11 @@ msgstr "" msgid "Remove owners from a vault." msgstr "" -#: ipaserver/plugins/vault.py:1197 +#: ipaserver/plugins/vault.py:1236 msgid "Owners that could not be removed" msgstr "" -#: ipaserver/plugins/vault.py:1202 +#: ipaserver/plugins/vault.py:1241 msgid "Number of owners removed" msgstr "" @@ -9423,348 +10319,6 @@ msgstr "" msgid "Display information about a vault container." msgstr "" -msgid "Principal for this certificate (e.g. HTTP/test.example.com)" -msgstr "" - -#: ipaserver/plugins/cert.py:578 ipaserver/plugins/certprofile.py:122 -msgid "Profile ID" -msgstr "" - -msgid "Certificate Profile to use" -msgstr "" - -msgid "" -"\n" -"ID ranges\n" -"\n" -"Manage ID ranges used to map Posix IDs to SIDs and back.\n" -"\n" -"There are two type of ID ranges which are both handled by this utility:\n" -"\n" -" - the ID ranges of the local domain\n" -" - the ID ranges of trusted remote domains\n" -"\n" -"Both types have the following attributes in common:\n" -"\n" -" - base-id: the first ID of the Posix ID range\n" -" - range-size: the size of the range\n" -"\n" -"With those two attributes a range object can reserve the Posix IDs starting\n" -"with base-id up to but not including base-id+range-size exclusively.\n" -"\n" -"Additionally an ID range of the local domain may set\n" -" - rid-base: the first RID(*) of the corresponding RID range\n" -" - secondary-rid-base: first RID of the secondary RID range\n" -"\n" -"and an ID range of a trusted domain must set\n" -" - rid-base: the first RID of the corresponding RID range\n" -" - sid: domain SID of the trusted domain\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for a trusted domain\n" -"\n" -"Since there might be more than one trusted domain the domain SID must be " -"given\n" -"while creating the ID range.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"This ID range is then used by the IPA server and the SSSD IPA provider to\n" -"assign Posix UIDs to users from the trusted domain.\n" -"\n" -"If e.g. a range for a trusted domain is configured with the following " -"values:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " -"So\n" -"RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for the local domain\n" -"\n" -"To create an ID range for the local domain it is not necessary to specify a\n" -"domain SID. But since it is possible that a user and a group can have the " -"same\n" -"value as Posix ID a second RID interval is needed to handle conflicts.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=1000 --secondary-rid-base=1000000 local_range\n" -"\n" -"The data from the ID ranges of the local domain are used by the IPA server\n" -"internally to assign SIDs to IPA users and groups. The SID will then be " -"stored\n" -"in the user or group objects.\n" -"\n" -"If e.g. the ID range for the local domain is configured with the values " -"from\n" -"the example above then a new user with the UID 1200007 will get the RID " -"1007.\n" -"If this RID is already used by a group the RID will be 1000007. This can " -"only\n" -"happen if a user or a group object was created with a fixed ID because the\n" -"automatic assignment will not assign the same ID twice. Since there are " -"only\n" -"users and groups sharing the same ID namespace it is sufficient to have " -"only\n" -"one fallback range to handle conflicts.\n" -"\n" -"To find the Posix ID for a given RID from the local domain it has to be\n" -"checked first if the RID falls in the primary or secondary RID range and\n" -"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" -"and the base-id has to be added to get the Posix ID.\n" -"\n" -"Typically the creation of ID ranges happens behind the scenes and this CLI\n" -"must not be used at all. The ID range for the local domain will be created\n" -"during installation or upgrade from an older version. The ID range for a\n" -"trusted domain will be created together with the trust by 'ipa trust-" -"add ...'.\n" -"\n" -"USE CASES:\n" -"\n" -" Add an ID range from a transitively trusted domain\n" -"\n" -" If the trusted domain (A) trusts another domain (B) as well and this " -"trust\n" -" is transitive 'ipa trust-add domain-A' will only create a range for\n" -" domain A. The ID range for domain B must be added manually.\n" -"\n" -" Add an additional ID range for the local domain\n" -"\n" -" If the ID range of the local domain is exhausted, i.e. no new IDs can " -"be\n" -" assigned to Posix users or groups by the DNA plugin, a new range has to " -"be\n" -" created to allow new users and groups to be added. (Currently there is " -"no\n" -" connection between this range CLI and the DNA plugin, but a future " -"version\n" -" might be able to modify the configuration of the DNS plugin as well)\n" -"\n" -"In general it is not necessary to modify or delete ID ranges. If there is " -"no\n" -"other way to achieve a certain configuration than to modify or delete an ID\n" -"range it should be done with great care. Because UIDs are stored in the " -"file\n" -"system and are used for access control it might be possible that users are\n" -"allowed to access files of other users if an ID range got deleted and " -"reused\n" -"for a different domain.\n" -"\n" -"(*) The RID is typically the last integer of a user or group SID which " -"follows\n" -"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " -"from\n" -"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 is the RID of " -"the\n" -"user. RIDs are unique in a domain, 32bit values and are used for users and\n" -"groups.\n" -"\n" -"=======\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -"=======\n" -msgstr "" - -msgid "" -"\n" -"Add new ID range.\n" -"\n" -" To add a new ID range you always have to specify\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Additionally\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" may be given for a new ID range for the local domain while\n" -"\n" -" --rid-base\n" -" --dom-sid\n" -"\n" -" must be given to add a new range for a trusted AD domain.\n" -"\n" -"=======\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -"=======\n" -" " -msgstr "" - -msgid "" -"\n" -"Modify ID range.\n" -"\n" -"=======\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -"=======\n" -" " -msgstr "" - -#: ipaserver/plugins/otptoken.py:469 -msgid "Remove users that can manage this token." -msgstr "" - -#: ipaserver/dcerpc_common.py:22 -msgid "Two-way trust" -msgstr "" - -msgid "" -"Establish bi-directional trust. By default trust is inbound one-way only." -msgstr "" - -msgid "" -"\n" -"Manage Certificate Profiles\n" -"\n" -"Certificate Profiles are used by Certificate Authority (CA) in the signing " -"of\n" -"certificates to determine if a Certificate Signing Request (CSR) is " -"acceptable,\n" -"and if so what features and extensions will be present on the certificate.\n" -"\n" -"The Certificate Profile format is the property-list format understood by " -"the\n" -"Dogtag or Red Hat Certificate System CA.\n" -"\n" -"PROFILE ID SYNTAX:\n" -"\n" -"A Profile ID is a string without spaces or punctuation starting with a " -"letter\n" -"and followed by a sequence of letters, digits or underscore (\"_\").\n" -"\n" -"EXAMPLES:\n" -"\n" -" Import a profile that will not store issued certificates:\n" -" ipa certprofile-import ShortLivedUserCert --file UserCert.profile " -"--desc \"User Certificates\" --store=false\n" -"\n" -" Delete a certificate profile:\n" -" ipa certprofile-del ShortLivedUserCert\n" -"\n" -" Show information about a profile:\n" -" ipa certprofile-show ShortLivedUserCert\n" -"\n" -" Save profile configuration to a file:\n" -" ipa certprofile-show caIPAserviceCert --out caIPAserviceCert.cfg\n" -"\n" -" Search for profiles that do not store certificates:\n" -" ipa certprofile-find --store=false\n" -"\n" -"PROFILE CONFIGURATION FORMAT:\n" -"\n" -"The profile configuration format is the raw property-list format\n" -"used by Dogtag Certificate System. The XML format is not supported.\n" -"\n" -"The following restrictions apply to profiles managed by IPA:\n" -"\n" -"- When importing a profile the \"profileId\" field, if present, must\n" -" match the ID given on the command line.\n" -"\n" -"- The \"classId\" field must be set to \"caEnrollImpl\"\n" -"\n" -"- The \"auth.instance_id\" field must be set to \"raCertAuth\"\n" -"\n" -"- The \"certReqInputImpl\" input class and \"certOutputImpl\" output\n" -" class must be used.\n" -msgstr "" - -#: ipaserver/plugins/certprofile.py:123 -msgid "Profile ID for referring to this profile" -msgstr "" - -#: ipaserver/plugins/certprofile.py:132 -msgid "Profile description" -msgstr "" - -#: ipaserver/plugins/certprofile.py:133 -msgid "Brief description of this profile" -msgstr "" - -#: ipaserver/plugins/certprofile.py:138 -msgid "Store issued certificates" -msgstr "" - -#: ipaserver/plugins/certprofile.py:139 -msgid "Whether to store certs issued using this profile" -msgstr "" - -#: ipaserver/plugins/certprofile.py:281 -msgid "Delete a Certificate Profile." -msgstr "" - -#: ipaserver/plugins/certprofile.py:188 -msgid "Search for Certificate Profiles." -msgstr "" - -#: ipaserver/plugins/certprofile.py:221 -msgid "Import a Certificate Profile." -msgstr "" - -#: ipaserver/plugins/certprofile.py:226 -msgid "Filename of a raw profile. The XML format is not supported." -msgstr "" - -#: ipaserver/plugins/certprofile.py:304 -msgid "Modify Certificate Profile configuration." -msgstr "" - -#: ipaserver/plugins/certprofile.py:310 -msgid "File containing profile configuration" -msgstr "" - -#: ipaserver/plugins/certprofile.py:200 -msgid "Display the properties of a Certificate Profile." -msgstr "" - -#: ipaserver/plugins/certprofile.py:204 -msgid "Write profile configuration to file" -msgstr "" - msgid "Resolve a host name in DNS. (Deprecated)" msgstr "" @@ -10074,11 +10628,11 @@ msgstr "" msgid "Check connection to remote IPA server." msgstr "" -#: ipaserver/plugins/trust.py:1848 +#: ipaserver/plugins/trust.py:1849 msgid "Remote server name" msgstr "" -#: ipaserver/plugins/trust.py:1849 +#: ipaserver/plugins/trust.py:1850 msgid "Remote IPA server hostname" msgstr "" @@ -11457,6 +12011,192 @@ msgid "" " ipa hostgroup-del baltimore\n" msgstr "" +msgid "" +"\n" +"ID ranges\n" +"\n" +"Manage ID ranges used to map Posix IDs to SIDs and back.\n" +"\n" +"There are two type of ID ranges which are both handled by this utility:\n" +"\n" +" - the ID ranges of the local domain\n" +" - the ID ranges of trusted remote domains\n" +"\n" +"Both types have the following attributes in common:\n" +"\n" +" - base-id: the first ID of the Posix ID range\n" +" - range-size: the size of the range\n" +"\n" +"With those two attributes a range object can reserve the Posix IDs starting\n" +"with base-id up to but not including base-id+range-size exclusively.\n" +"\n" +"Additionally an ID range of the local domain may set\n" +" - rid-base: the first RID(*) of the corresponding RID range\n" +" - secondary-rid-base: first RID of the secondary RID range\n" +"\n" +"and an ID range of a trusted domain must set\n" +" - rid-base: the first RID of the corresponding RID range\n" +" - dom_sid: domain SID of the trusted domain\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for a trusted domain\n" +"\n" +"Since there might be more than one trusted domain the domain SID must be " +"given\n" +"while creating the ID range.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +"\n" +"This ID range is then used by the IPA server and the SSSD IPA provider to\n" +"assign Posix UIDs to users from the trusted domain.\n" +"\n" +"If e.g. a range for a trusted domain is configured with the following " +"values:\n" +" base-id = 1200000\n" +" range-size = 200000\n" +" rid-base = 0\n" +"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " +"So\n" +"RID 1000 <-> Posix ID 1201000\n" +"\n" +"\n" +"\n" +"EXAMPLE: Add a new ID range for the local domain\n" +"\n" +"To create an ID range for the local domain it is not necessary to specify a\n" +"domain SID. But since it is possible that a user and a group can have the " +"same\n" +"value as Posix ID a second RID interval is needed to handle conflicts.\n" +"\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" +"base=1000 --secondary-rid-base=1000000 local_range\n" +"\n" +"The data from the ID ranges of the local domain are used by the IPA server\n" +"internally to assign SIDs to IPA users and groups. The SID will then be " +"stored\n" +"in the user or group objects.\n" +"\n" +"If e.g. the ID range for the local domain is configured with the values " +"from\n" +"the example above then a new user with the UID 1200007 will get the RID " +"1007.\n" +"If this RID is already used by a group the RID will be 1000007. This can " +"only\n" +"happen if a user or a group object was created with a fixed ID because the\n" +"automatic assignment will not assign the same ID twice. Since there are " +"only\n" +"users and groups sharing the same ID namespace it is sufficient to have " +"only\n" +"one fallback range to handle conflicts.\n" +"\n" +"To find the Posix ID for a given RID from the local domain it has to be\n" +"checked first if the RID falls in the primary or secondary RID range and\n" +"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" +"and the base-id has to be added to get the Posix ID.\n" +"\n" +"Typically the creation of ID ranges happens behind the scenes and this CLI\n" +"must not be used at all. The ID range for the local domain will be created\n" +"during installation or upgrade from an older version. The ID range for a\n" +"trusted domain will be created together with the trust by 'ipa trust-" +"add ...'.\n" +"\n" +"USE CASES:\n" +"\n" +" Add an ID range from a transitively trusted domain\n" +"\n" +" If the trusted domain (A) trusts another domain (B) as well and this " +"trust\n" +" is transitive 'ipa trust-add domain-A' will only create a range for\n" +" domain A. The ID range for domain B must be added manually.\n" +"\n" +" Add an additional ID range for the local domain\n" +"\n" +" If the ID range of the local domain is exhausted, i.e. no new IDs can " +"be\n" +" assigned to Posix users or groups by the DNA plugin, a new range has to " +"be\n" +" created to allow new users and groups to be added. (Currently there is " +"no\n" +" connection between this range CLI and the DNA plugin, but a future " +"version\n" +" might be able to modify the configuration of the DNS plugin as well)\n" +"\n" +"In general it is not necessary to modify or delete ID ranges. If there is " +"no\n" +"other way to achieve a certain configuration than to modify or delete an ID\n" +"range it should be done with great care. Because UIDs are stored in the " +"file\n" +"system and are used for access control it might be possible that users are\n" +"allowed to access files of other users if an ID range got deleted and " +"reused\n" +"for a different domain.\n" +"\n" +"(*) The RID is typically the last integer of a user or group SID which " +"follows\n" +"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " +"from\n" +"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 is the RID of " +"the\n" +"user. RIDs are unique in a domain, 32bit values and are used for users and\n" +"groups.\n" +"\n" +"WARNING:\n" +"\n" +"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " +"the\n" +"local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +"on the local ranges set via this family of commands.\n" +"\n" +"Manual configuration change has to be done in the DNA plugin configuration " +"for\n" +"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" +"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " +"be\n" +"modified to match the new range.\n" +msgstr "" + +msgid "" +"\n" +"Add new ID range.\n" +"\n" +" To add a new ID range you always have to specify\n" +"\n" +" --base-id\n" +" --range-size\n" +"\n" +" Additionally\n" +"\n" +" --rid-base\n" +" --secondary-rid-base\n" +"\n" +" may be given for a new ID range for the local domain while\n" +"\n" +" --rid-bas\n" +" --dom-sid\n" +"\n" +" must be given to add a new range for a trusted AD domain.\n" +"\n" +" WARNING:\n" +"\n" +" DNA plugin in 389-ds will allocate IDs based on the ranges configured " +"for the\n" +" local domain. Currently the DNA plugin *cannot* be reconfigured itself " +"based\n" +" on the local ranges set via this family of commands.\n" +"\n" +" Manual configuration change has to be done in the DNA plugin " +"configuration for\n" +" the new local range. Specifically, The dnaNextRange attribute of " +"'cn=Posix\n" +" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has " +"to be\n" +" modified to match the new range.\n" +" " +msgstr "" + msgid "" "Comma-separated list of objectclasses used to search for user entries in DS" msgstr "" @@ -11769,192 +12509,6 @@ msgstr "" msgid "GECOS field" msgstr "" -msgid "" -"\n" -"ID ranges\n" -"\n" -"Manage ID ranges used to map Posix IDs to SIDs and back.\n" -"\n" -"There are two type of ID ranges which are both handled by this utility:\n" -"\n" -" - the ID ranges of the local domain\n" -" - the ID ranges of trusted remote domains\n" -"\n" -"Both types have the following attributes in common:\n" -"\n" -" - base-id: the first ID of the Posix ID range\n" -" - range-size: the size of the range\n" -"\n" -"With those two attributes a range object can reserve the Posix IDs starting\n" -"with base-id up to but not including base-id+range-size exclusively.\n" -"\n" -"Additionally an ID range of the local domain may set\n" -" - rid-base: the first RID(*) of the corresponding RID range\n" -" - secondary-rid-base: first RID of the secondary RID range\n" -"\n" -"and an ID range of a trusted domain must set\n" -" - rid-base: the first RID of the corresponding RID range\n" -" - dom_sid: domain SID of the trusted domain\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for a trusted domain\n" -"\n" -"Since there might be more than one trusted domain the domain SID must be " -"given\n" -"while creating the ID range.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" -"\n" -"This ID range is then used by the IPA server and the SSSD IPA provider to\n" -"assign Posix UIDs to users from the trusted domain.\n" -"\n" -"If e.g. a range for a trusted domain is configured with the following " -"values:\n" -" base-id = 1200000\n" -" range-size = 200000\n" -" rid-base = 0\n" -"the RIDs 0 to 199999 are mapped to the Posix ID from 1200000 to 13999999. " -"So\n" -"RID 1000 <-> Posix ID 1201000\n" -"\n" -"\n" -"\n" -"EXAMPLE: Add a new ID range for the local domain\n" -"\n" -"To create an ID range for the local domain it is not necessary to specify a\n" -"domain SID. But since it is possible that a user and a group can have the " -"same\n" -"value as Posix ID a second RID interval is needed to handle conflicts.\n" -"\n" -" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-" -"base=1000 --secondary-rid-base=1000000 local_range\n" -"\n" -"The data from the ID ranges of the local domain are used by the IPA server\n" -"internally to assign SIDs to IPA users and groups. The SID will then be " -"stored\n" -"in the user or group objects.\n" -"\n" -"If e.g. the ID range for the local domain is configured with the values " -"from\n" -"the example above then a new user with the UID 1200007 will get the RID " -"1007.\n" -"If this RID is already used by a group the RID will be 1000007. This can " -"only\n" -"happen if a user or a group object was created with a fixed ID because the\n" -"automatic assignment will not assign the same ID twice. Since there are " -"only\n" -"users and groups sharing the same ID namespace it is sufficient to have " -"only\n" -"one fallback range to handle conflicts.\n" -"\n" -"To find the Posix ID for a given RID from the local domain it has to be\n" -"checked first if the RID falls in the primary or secondary RID range and\n" -"the rid-base or the secondary-rid-base has to be subtracted, respectively,\n" -"and the base-id has to be added to get the Posix ID.\n" -"\n" -"Typically the creation of ID ranges happens behind the scenes and this CLI\n" -"must not be used at all. The ID range for the local domain will be created\n" -"during installation or upgrade from an older version. The ID range for a\n" -"trusted domain will be created together with the trust by 'ipa trust-" -"add ...'.\n" -"\n" -"USE CASES:\n" -"\n" -" Add an ID range from a transitively trusted domain\n" -"\n" -" If the trusted domain (A) trusts another domain (B) as well and this " -"trust\n" -" is transitive 'ipa trust-add domain-A' will only create a range for\n" -" domain A. The ID range for domain B must be added manually.\n" -"\n" -" Add an additional ID range for the local domain\n" -"\n" -" If the ID range of the local domain is exhausted, i.e. no new IDs can " -"be\n" -" assigned to Posix users or groups by the DNA plugin, a new range has to " -"be\n" -" created to allow new users and groups to be added. (Currently there is " -"no\n" -" connection between this range CLI and the DNA plugin, but a future " -"version\n" -" might be able to modify the configuration of the DNS plugin as well)\n" -"\n" -"In general it is not necessary to modify or delete ID ranges. If there is " -"no\n" -"other way to achieve a certain configuration than to modify or delete an ID\n" -"range it should be done with great care. Because UIDs are stored in the " -"file\n" -"system and are used for access control it might be possible that users are\n" -"allowed to access files of other users if an ID range got deleted and " -"reused\n" -"for a different domain.\n" -"\n" -"(*) The RID is typically the last integer of a user or group SID which " -"follows\n" -"the domain SID. E.g. if the domain SID is S-1-5-21-123-456-789 and a user " -"from\n" -"this domain has the SID S-1-5-21-123-456-789-1010 then 1010 is the RID of " -"the\n" -"user. RIDs are unique in a domain, 32bit values and are used for users and\n" -"groups.\n" -"\n" -"WARNING:\n" -"\n" -"DNA plugin in 389-ds will allocate IDs based on the ranges configured for " -"the\n" -"local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -"on the local ranges set via this family of commands.\n" -"\n" -"Manual configuration change has to be done in the DNA plugin configuration " -"for\n" -"the new local range. Specifically, The dnaNextRange attribute of 'cn=Posix\n" -"IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has to " -"be\n" -"modified to match the new range.\n" -msgstr "" - -msgid "" -"\n" -"Add new ID range.\n" -"\n" -" To add a new ID range you always have to specify\n" -"\n" -" --base-id\n" -" --range-size\n" -"\n" -" Additionally\n" -"\n" -" --rid-base\n" -" --secondary-rid-base\n" -"\n" -" may be given for a new ID range for the local domain while\n" -"\n" -" --rid-bas\n" -" --dom-sid\n" -"\n" -" must be given to add a new range for a trusted AD domain.\n" -"\n" -" WARNING:\n" -"\n" -" DNA plugin in 389-ds will allocate IDs based on the ranges configured " -"for the\n" -" local domain. Currently the DNA plugin *cannot* be reconfigured itself " -"based\n" -" on the local ranges set via this family of commands.\n" -"\n" -" Manual configuration change has to be done in the DNA plugin " -"configuration for\n" -" the new local range. Specifically, The dnaNextRange attribute of " -"'cn=Posix\n" -" IDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' has " -"to be\n" -" modified to match the new range.\n" -" " -msgstr "" - msgid "" "\n" "Sudo Rules\n" @@ -12060,799 +12614,6 @@ msgstr "" msgid "Failed targets" msgstr "" -#: ipaclient/plugins/automember.py:33 ipaserver/plugins/automember.py:342 -msgid "Failed to add" -msgstr "" - -#: ipaclient/plugins/ca.py:19 ipaclient/plugins/cert.py:39 -msgid "Write certificate (chain if --chain used) to file" -msgstr "" - -#: ipaclient/plugins/certmap.py:19 -msgid "Input file" -msgstr "" - -#: ipaclient/plugins/certmap.py:20 -msgid "File to load the certificate from" -msgstr "" - -#: ipaclient/plugins/certmap.py:41 ipaclient/plugins/cert.py:130 -msgid "cannot specify both raw certificate and file" -msgstr "" - -#: ipaclient/plugins/certprofile.py:25 -#, python-format -msgid "Profile configuration stored in file '%(file)s'" -msgstr "" - -#: ipaclient/plugins/host.py:41 ipaclient/plugins/service.py:43 -#: ipaclient/plugins/user.py:74 -#, python-format -msgid "Certificate(s) stored in file '%(file)s'" -msgstr "" - -#: ipaclient/plugins/location.py:23 -msgid "Servers details:" -msgstr "" - -#: ipaclient/plugins/migration.py:37 -msgid "" -"Migration mode is disabled.\n" -"Use 'ipa config-mod --enable-migration=TRUE' to enable it." -msgstr "" - -#: ipaclient/plugins/migration.py:41 -msgid "" -"Passwords have been migrated in pre-hashed format.\n" -"IPA is unable to generate Kerberos keys unless provided\n" -"with clear text passwords. All migrated users need to\n" -"login at https://your.domain/ipa/migration/ before they\n" -"can use their Kerberos accounts." -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:35 -msgid "python-yubico is not installed." -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:40 -msgid "" -"\n" -"YubiKey Tokens\n" -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:42 -msgid "" -"\n" -"Manage YubiKey tokens.\n" -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:44 -msgid "" -"\n" -"This code is an extension to the otptoken plugin and provides support for\n" -"reading/writing YubiKey tokens directly.\n" -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:47 ipaserver/plugins/automember.py:63 -#: ipaserver/plugins/cert.py:99 ipaserver/plugins/radiusproxy.py:43 -#: ipaserver/plugins/ca.py:35 ipaserver/plugins/permission.py:97 -#: ipaserver/plugins/server.py:40 ipaserver/plugins/host.py:104 -#: ipaserver/plugins/otptoken.py:49 ipaserver/plugins/location.py:37 -#: ipaserver/plugins/dnsserver.py:39 ipaserver/plugins/schema.py:28 -#: ipaserver/plugins/sudorule.py:76 ipaserver/plugins/certmap.py:60 -#: ipaserver/plugins/vault.py:90 ipaserver/plugins/serverrole.py:19 -msgid "" -"\n" -"EXAMPLES:\n" -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:49 -msgid "" -"\n" -" Add a new token:\n" -" ipa otptoken-add-yubikey --owner=jdoe --desc=\"My YubiKey\"\n" -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:72 -msgid "Add a new YubiKey OTP token." -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:77 -msgid "YubiKey slot" -msgstr "" - -#: ipaclient/plugins/otptoken_yubikey.py:146 -msgid "No free YubiKey slot!" -msgstr "" - -#: ipaclient/plugins/server.py:20 -#, python-format -msgid "Removing %(servers)s from replication topology, please wait..." -msgstr "" - -#: ipaclient/plugins/topology.py:25 -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" is in order." -msgstr "" - -#: ipaclient/plugins/topology.py:30 -#, python-format -msgid "Replication topology of suffix \"%(suffix)s\" contains errors." -msgstr "" - -#: ipaclient/plugins/topology.py:33 -msgid "Topology is disconnected" -msgstr "" - -#: ipaclient/plugins/topology.py:35 -#, python-format -msgid "Server %(srv)s can't contact servers: %(replicas)s" -msgstr "" - -#: ipaclient/plugins/topology.py:40 -msgid "Recommended maximum number of agreements per replica exceeded" -msgstr "" - -#: ipaclient/plugins/topology.py:43 -msgid "Maximum number of agreements per replica" -msgstr "" - -#: ipaclient/plugins/topology.py:47 -#, python-format -msgid "Server \"%(srv)s\" has %(n)d agreements with servers:" -msgstr "" - -#: ipaclient/plugins/user.py:40 -msgid "Delete a user, keeping the entry available for future use" -msgstr "" - -#: ipaclient/plugins/user.py:45 -msgid "Delete a user" -msgstr "" - -#: ipaclient/plugins/user.py:54 -msgid "preserve and no-preserve cannot be both set" -msgstr "" - -#: ipaclient/plugins/dns.py:137 ipaserver/plugins/dns.py:3576 -msgid "Split DNS record to parts" -msgstr "" - -#: ipaclient/plugins/dns.py:237 -msgid "Please choose a type of DNS resource record to be added" -msgstr "" - -#: ipaclient/plugins/dns.py:238 -#, python-format -msgid "The most common types for this type of zone are: %s\n" -msgstr "" - -#: ipaclient/plugins/dns.py:243 -msgid "DNS resource record type" -msgstr "" - -#: ipaclient/plugins/dns.py:261 -#, python-format -msgid "Invalid or unsupported type. Allowed values are: %s" -msgstr "" - -#: ipaclient/plugins/dns.py:286 -msgid "No option to modify specific record provided." -msgstr "" - -#: ipaclient/plugins/dns.py:289 ipaclient/plugins/dns.py:355 -msgid "Current DNS record contents:\n" -msgstr "" - -#: ipaclient/plugins/dns.py:312 -#, python-format -msgid "Modify %(name)s '%(value)s'?" -msgstr "" - -#: ipaclient/plugins/dns.py:321 -#, python-format -msgid "" -"%(count)d %(type)s record skipped. Only one value per DNS record type can be " -"modified at one time." -msgid_plural "" -"%(count)d %(type)s records skipped. Only one value per DNS record type can " -"be modified at one time." -msgstr[0] "" -msgstr[1] "" - -#: ipaclient/plugins/dns.py:329 ipaserver/plugins/dns.py:3876 -msgid "" -"Neither --del-all nor options to delete a specific record provided.\n" -"Command help may be consulted for all supported record types." -msgstr "" - -#: ipaclient/plugins/dns.py:347 -msgid "No option to delete specific record provided." -msgstr "" - -#: ipaclient/plugins/dns.py:348 -msgid "Delete all?" -msgstr "" - -#: ipaclient/plugins/dns.py:376 -#, python-format -msgid "Delete %(name)s '%(value)s'?" -msgstr "" - -#: ipaclient/plugins/dns.py:392 ipaclient/plugins/dns.py:409 -#: ipaclient/plugins/dns.py:421 -msgid "Server will check DNS forwarder(s)." -msgstr "" - -#: ipaclient/plugins/dns.py:394 ipaclient/plugins/dns.py:411 -#: ipaclient/plugins/dns.py:423 -msgid "This may take some time, please wait ..." -msgstr "" - -#: ipaclient/plugins/dns.py:403 -msgid "DNS forwarder" -msgstr "" - -#: ipaclient/plugins/dns.py:434 -msgid "file to store DNS records in nsupdate format" -msgstr "" - -#: ipaclient/plugins/otptoken.py:66 -msgid "" -"Unable to display QR code using the configured output encoding. Please use " -"the token URI to configure your OTP device" -msgstr "" - -#: ipaclient/plugins/otptoken.py:82 -msgid "" -"QR code width is greater than that of the output tty. Please resize your " -"terminal." -msgstr "" - -#: ipaclient/plugins/otptoken.py:137 -msgid "Synchronize an OTP token." -msgstr "" - -#: ipaclient/plugins/otptoken.py:142 -msgid "User ID" -msgstr "" - -#: ipaclient/plugins/otptoken.py:144 -msgid "First Code" -msgstr "" - -#: ipaclient/plugins/otptoken.py:145 -msgid "Second Code" -msgstr "" - -#: ipaclient/plugins/otptoken.py:149 ipaserver/plugins/internal.py:1724 -msgid "Token ID" -msgstr "" - -#: ipaclient/plugins/vault.py:67 ipaclient/plugins/vault.py:833 -#, python-format -msgid "Cannot read file '%(filename)s': %(exc)s" -msgstr "" - -#: ipaclient/plugins/vault.py:74 -#, python-format -msgid "Cannot decode file '%(filename)s': %(exc)s" -msgstr "" - -#: ipaclient/plugins/vault.py:144 ipaclient/plugins/vault.py:163 -#: ipaserver/plugins/passwd.py:149 -msgid "Invalid credentials" -msgstr "" - -#: ipaclient/plugins/vault.py:181 -msgid "Create a new vault." -msgstr "" - -#: ipaclient/plugins/vault.py:187 ipaclient/plugins/vault.py:728 -#: ipaclient/plugins/vault.py:961 -msgid "Vault password" -msgstr "" - -#: ipaclient/plugins/vault.py:192 ipaclient/plugins/vault.py:733 -#: ipaclient/plugins/vault.py:966 -msgid "File containing the vault password" -msgstr "" - -#: ipaclient/plugins/vault.py:197 -msgid "File containing the vault public key" -msgstr "" - -#: ipaclient/plugins/vault.py:257 -msgid "Password can be specified only for symmetric vault" -msgstr "" - -#: ipaclient/plugins/vault.py:263 -msgid "Public key can be specified only for asymmetric vault" -msgstr "" - -#: ipaclient/plugins/vault.py:283 ipaclient/plugins/vault.py:866 -#: ipaclient/plugins/vault.py:1094 -msgid "Password specified multiple times" -msgstr "" - -#: ipaclient/plugins/vault.py:306 -msgid "Public key specified multiple times" -msgstr "" - -#: ipaclient/plugins/vault.py:322 -msgid "Missing vault public key" -msgstr "" - -#: ipaclient/plugins/vault.py:334 -#, python-format -msgid "Invalid or unsupported vault public key: %s" -msgstr "" - -#: ipaclient/plugins/vault.py:368 ipaserver/plugins/vault.py:921 -msgid "Modify a vault." -msgstr "" - -#: ipaclient/plugins/vault.py:373 ipaserver/plugins/internal.py:1731 -msgid "Change password" -msgstr "" - -#: ipaclient/plugins/vault.py:378 -msgid "Old vault password" -msgstr "" - -#: ipaclient/plugins/vault.py:383 -msgid "File containing the old vault password" -msgstr "" - -#: ipaclient/plugins/vault.py:388 -msgid "New vault password" -msgstr "" - -#: ipaclient/plugins/vault.py:393 -msgid "File containing the new vault password" -msgstr "" - -#: ipaclient/plugins/vault.py:398 -msgid "Old vault private key" -msgstr "" - -#: ipaclient/plugins/vault.py:403 -msgid "File containing the old vault private key" -msgstr "" - -#: ipaclient/plugins/vault.py:408 -msgid "File containing the new vault public key" -msgstr "" - -#: ipaclient/plugins/vault.py:514 -msgid "New public key specified multiple times" -msgstr "" - -#: ipaclient/plugins/vault.py:527 -msgid "Missing new vault public key" -msgstr "" - -#: ipaclient/plugins/vault.py:714 ipaserver/plugins/vault.py:1017 -msgid "Archive data into a vault." -msgstr "" - -#: ipaclient/plugins/vault.py:719 -msgid "Binary data to archive" -msgstr "" - -#: ipaclient/plugins/vault.py:723 -msgid "File containing data to archive" -msgstr "" - -#: ipaclient/plugins/vault.py:737 -msgid "Override existing password" -msgstr "" - -#: ipaclient/plugins/vault.py:819 -msgid "Input data specified multiple times" -msgstr "" - -#: ipaclient/plugins/vault.py:824 ipaclient/plugins/vault.py:837 -#, python-format -msgid "" -"Size of data exceeds the limit. Current vault data size limit is %(limit)d B" -msgstr "" - -#: ipaclient/plugins/vault.py:920 ipaclient/plugins/vault.py:1144 -msgid "Invalid vault type" -msgstr "" - -#: ipaclient/plugins/vault.py:951 -msgid "Retrieve a data from a vault." -msgstr "" - -#: ipaclient/plugins/vault.py:956 -msgid "File to store retrieved data" -msgstr "" - -#: ipaclient/plugins/vault.py:971 -msgid "Vault private key" -msgstr "" - -#: ipaclient/plugins/vault.py:976 -msgid "File containing the vault private key" -msgstr "" - -#: ipaclient/plugins/vault.py:983 ipaserver/plugins/internal.py:757 -msgid "Data" -msgstr "" - -#: ipaclient/plugins/vault.py:1120 -msgid "Private key specified multiple times" -msgstr "" - -#: ipaclient/plugins/vault.py:1133 -msgid "Missing vault private key" -msgstr "" - -#: ipaclient/plugins/automount.py:101 -msgid "maps not connected to /etc/auto.master:" -msgstr "" - -#: ipaclient/plugins/automount.py:120 -msgid "Import automount files for a specific location." -msgstr "" - -#: ipaclient/plugins/automount.py:124 -msgid "Master file" -msgstr "" - -#: ipaclient/plugins/automount.py:125 -msgid "Automount master file." -msgstr "" - -#: ipaclient/plugins/automount.py:132 -msgid "" -"Continuous operation mode. Errors are reported but the process continues." -msgstr "" - -#: ipaclient/plugins/automount.py:150 -#, python-format -msgid "File %(file)s not found" -msgstr "" - -#: ipaclient/plugins/automount.py:200 -#, python-format -msgid "key %(key)s already exists" -msgstr "" - -#: ipaclient/plugins/automount.py:215 -#, python-format -msgid "map %(map)s already exists" -msgstr "" - -#: ipaclient/plugins/automount.py:264 -msgid "Imported maps:" -msgstr "" - -#: ipaclient/plugins/automount.py:267 -#, python-format -msgid "Added %(map)s" -msgstr "" - -#: ipaclient/plugins/automount.py:271 -msgid "Imported keys:" -msgstr "" - -#: ipaclient/plugins/automount.py:274 -#, python-format -msgid "Added %(src)s to %(dst)s" -msgstr "" - -#: ipaclient/plugins/automount.py:281 -msgid "Ignored keys:" -msgstr "" - -#: ipaclient/plugins/automount.py:284 -#, python-format -msgid "Ignored %(src)s to %(dst)s" -msgstr "" - -#: ipaclient/plugins/automount.py:292 -msgid "Duplicate maps skipped:" -msgstr "" - -#: ipaclient/plugins/automount.py:295 -#, python-format -msgid "Skipped %(map)s" -msgstr "" - -#: ipaclient/plugins/automount.py:301 -msgid "Duplicate keys skipped:" -msgstr "" - -#: ipaclient/plugins/automount.py:304 -#, python-format -msgid "Skipped %(key)s" -msgstr "" - -#: ipaclient/plugins/cert.py:107 -msgid "Unrevoked" -msgstr "" - -#: ipaclient/plugins/cert.py:110 ipaserver/plugins/internal.py:293 -msgid "Error" -msgstr "" - -#: ipaclient/plugins/cert.py:120 -msgid "Input filename" -msgstr "" - -#: ipaclient/plugins/cert.py:121 -msgid "File to load the certificate from." -msgstr "" - -#: ipaclient/plugins/sudorule.py:30 -#, python-format -msgid "Enabled Sudo Rule \"%s\"" -msgstr "" - -#: ipaclient/plugins/sudorule.py:36 -#, python-format -msgid "Disabled Sudo Rule \"%s\"" -msgstr "" - -#: ipaclient/plugins/sudorule.py:44 -#, python-format -msgid "Added option \"%(option)s\" to Sudo Rule \"%(rule)s\"" -msgstr "" - -#: ipaclient/plugins/sudorule.py:57 -#, python-format -msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" -msgstr "" - -#: ipalib/cli.py:630 -#, python-format -msgid "Enter %(label)s again to verify: " -msgstr "" - -#: ipalib/cli.py:639 -msgid "Passwords do not match!" -msgstr "" - -#: ipalib/cli.py:662 -msgid "No matching entries found" -msgstr "" - -#: ipalib/cli.py:737 -msgid "Topic or Command" -msgstr "" - -#: ipalib/cli.py:738 -msgid "The topic or command name." -msgstr "" - -#: ipalib/cli.py:910 -msgid "Topic commands:" -msgstr "" - -#: ipalib/cli.py:916 -msgid "To get command help, use:" -msgstr "" - -#: ipalib/cli.py:917 -msgid " ipa --help" -msgstr "" - -#: ipalib/cli.py:928 -msgid "Command name" -msgstr "" - -#: ipalib/cli.py:1151 -msgid "Positional arguments" -msgstr "" - -#: ipalib/cli.py:1297 -#, python-format -msgid "Same as --%s" -msgstr "" - -#: ipalib/cli.py:1300 -msgid "Deprecated options" -msgstr "" - -#: ipalib/cli.py:1431 -msgid "No file to read" -msgstr "" - -#: ipalib/parameters.py:415 -msgid "incorrect type" -msgstr "" - -#: ipalib/parameters.py:418 -msgid "Only one value is allowed" -msgstr "" - -#: ipalib/parameters.py:885 -msgid "this option is deprecated" -msgstr "" - -#: ipalib/parameters.py:1003 -msgid "must be True or False" -msgstr "" - -#: ipalib/parameters.py:1101 -msgid "must be an integer" -msgstr "" - -#: ipalib/parameters.py:1167 -#, python-format -msgid "must be at least %(minvalue)d" -msgstr "" - -#: ipalib/parameters.py:1179 -#, python-format -msgid "can be at most %(maxvalue)d" -msgstr "" - -#: ipalib/parameters.py:1197 -msgid "must be a decimal number" -msgstr "" - -#: ipalib/parameters.py:1243 -#, python-format -msgid "must be at least %(minvalue)s" -msgstr "" - -#: ipalib/parameters.py:1255 -#, python-format -msgid "can be at most %(maxvalue)s" -msgstr "" - -#: ipalib/parameters.py:1265 -#, python-format -msgid "" -"number class '%(cls)s' is not included in a list of allowed number classes: " -"%(allowed)s" -msgstr "" - -#: ipalib/parameters.py:1388 -#, python-format -msgid "must match pattern \"%(pattern)s\"" -msgstr "" - -#: ipalib/parameters.py:1408 -msgid "must be binary data" -msgstr "" - -#: ipalib/parameters.py:1427 -#, python-format -msgid "must be at least %(minlength)d bytes" -msgstr "" - -#: ipalib/parameters.py:1439 -#, python-format -msgid "can be at most %(maxlength)d bytes" -msgstr "" - -#: ipalib/parameters.py:1451 -#, python-format -msgid "must be exactly %(length)d bytes" -msgstr "" - -#: ipalib/parameters.py:1468 -msgid "must be a certificate" -msgstr "" - -#: ipalib/parameters.py:1504 -msgid "must be a certificate signing request" -msgstr "" - -#: ipalib/parameters.py:1550 -#, python-format -msgid "Failure decoding Certificate Signing Request: %s" -msgstr "" - -#: ipalib/parameters.py:1574 -msgid "must be Unicode text" -msgstr "" - -#: ipalib/parameters.py:1605 -msgid "Leading and trailing spaces are not allowed" -msgstr "" - -#: ipalib/parameters.py:1615 -#, python-format -msgid "must be at least %(minlength)d characters" -msgstr "" - -#: ipalib/parameters.py:1627 -#, python-format -msgid "can be at most %(maxlength)d characters" -msgstr "" - -#: ipalib/parameters.py:1639 -#, python-format -msgid "must be exactly %(length)d characters" -msgstr "" - -#: ipalib/parameters.py:1661 -#, python-format -msgid "The character %(char)r is not allowed." -msgstr "" - -#: ipalib/parameters.py:1714 -#, python-format -msgid "must be '%(value)s'" -msgstr "" - -#: ipalib/parameters.py:1717 -#, python-format -msgid "must be one of %(values)s" -msgstr "" - -#: ipalib/parameters.py:1834 -msgid "must be datetime value" -msgstr "" - -#: ipalib/parameters.py:1852 -msgid "does not match any of accepted formats: " -msgstr "" - -#: ipalib/parameters.py:2035 -msgid "incomplete time value" -msgstr "" - -#: ipalib/parameters.py:2112 -msgid "must be DNS name" -msgstr "" - -#: ipalib/parameters.py:2140 -msgid "must be absolute" -msgstr "" - -#: ipalib/parameters.py:2146 -msgid "must be relative" -msgstr "" - -#: ipalib/parameters.py:2157 -msgid "must be dictionary" -msgstr "" - -#: ipalib/parameters.py:2166 -msgid "must be Kerberos principal" -msgstr "" - -#: ipalib/parameters.py:2182 -#, python-format -msgid "Malformed principal: '%(value)s'" -msgstr "" - -#: ipalib/parameters.py:2191 -msgid "Service principal is required" -msgstr "" - -#: ipalib/output.py:110 -msgid "A dictionary representing an LDAP entry" -msgstr "" - -#: ipalib/output.py:118 -msgid "A list of LDAP entries" -msgstr "" - -#: ipalib/output.py:170 -msgid "All commands should at least have a result" -msgstr "" - -#: ipalib/frontend.py:425 -msgid "Results are truncated, try a more specific search" -msgstr "" - -#: ipalib/frontend.py:584 ipatests/test_xmlrpc/test_ping_plugin.py:52 -#, python-format -msgid "Unknown option: %(option)s" -msgstr "" - -#: ipalib/frontend.py:986 ipaserver/plugins/batch.py:83 -msgid "Client version. Used to determine if server will accept request." -msgstr "" - #: ipalib/errors.py:296 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" @@ -13306,163 +13067,6 @@ msgid "" "prevents a trust to '%(conflict)s'" msgstr "" -#: ipalib/misc.py:22 -#, python-format -msgid "%(count)d variables" -msgstr "" - -#: ipalib/misc.py:96 -#, python-format -msgid "%(count)d plugin loaded" -msgid_plural "%(count)d plugins loaded" -msgstr[0] "" -msgstr[1] "" - -#: ipalib/plugable.py:540 -#, python-format -msgid "%(filename)s: file not found" -msgstr "" - -#: ipalib/plugable.py:613 -#, python-brace-format -msgid "Unable to parse option {item}" -msgstr "" - -#: ipalib/rpc.py:1114 -msgid "any of the configured servers" -msgstr "" - -#: ipalib/rpc.py:1197 -msgid "Exceeded number of tries to forward a request." -msgstr "" - -#: ipalib/util.py:214 -msgid "Filename is empty" -msgstr "" - -#: ipalib/util.py:218 -#, python-format -msgid "Permission denied: %(file)s" -msgstr "" - -#: ipalib/util.py:415 ipalib/util.py:947 -msgid "empty DNS label" -msgstr "" - -#: ipalib/util.py:418 -msgid "DNS label cannot be longer that 63 characters" -msgstr "" - -#: ipalib/util.py:423 -#, python-format -msgid "" -"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " -"with %(chars2)s" -msgstr "" - -#: ipalib/util.py:439 -msgid "single label {}s are not supported" -msgstr "" - -#: ipalib/util.py:449 -msgid "too many '@' characters" -msgstr "" - -#: ipalib/util.py:478 -msgid "cannot be longer that {} characters" -msgstr "" - -#: ipalib/util.py:485 -msgid "hostname contains empty label (consecutive dots)" -msgstr "" - -#: ipalib/util.py:489 -msgid "not fully qualified" -msgstr "" - -#: ipalib/util.py:502 ipalib/util.py:511 -msgid "invalid SSH public key" -msgstr "" - -#: ipalib/util.py:514 -msgid "options are not allowed" -msgstr "" - -#: ipalib/util.py:750 -msgid "invalid hostmask" -msgstr "" - -#: ipalib/util.py:764 -#, python-format -msgid "query '%(owner)s %(rtype)s': %(error)s" -msgstr "" - -#: ipalib/util.py:768 -#, python-format -msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" -msgstr "" - -#: ipalib/util.py:772 -#, python-format -msgid "" -"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " -"data)" -msgstr "" - -#: ipalib/util.py:777 -#, python-format -msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" -msgstr "" - -#: ipalib/util.py:945 -msgid "invalid escape code in domain name" -msgstr "" - -#: ipalib/util.py:949 -msgid "domain name cannot be longer than 255 characters" -msgstr "" - -#: ipalib/util.py:951 -msgid "DNS label cannot be longer than 63 characters" -msgstr "" - -#: ipalib/util.py:953 -msgid "invalid domain name" -msgstr "" - -#: ipalib/util.py:966 -#, python-format -msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" -msgstr "" - -#: ipalib/util.py:1115 -#, python-format -msgid "invalid domain-name: %s" -msgstr "" - -#: ipalib/util.py:1127 -#, python-format -msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" -msgstr "" - -#: ipalib/util.py:1133 -msgid "invalid IP address format" -msgstr "" - -#: ipalib/util.py:1151 -#, python-format -msgid "%(port)s is not a valid port" -msgstr "" - -#: ipalib/util.py:1184 -msgid "" -"at least one value equal to the canonical principal name must be present" -msgstr "" - -#: ipalib/util.py:1271 -msgid "realm or UPN suffix overlaps with trusted domain namespace" -msgstr "" - #: ipalib/messages.py:84 msgid "Additional instructions:" msgstr "" @@ -13649,2512 +13253,758 @@ msgstr "" msgid "The certificate for %(ca)s is not available on this server." msgstr "" -#: ipapython/dogtag.py:114 +#: ipalib/misc.py:22 +#, python-format +msgid "%(count)d variables" +msgstr "" + +#: ipalib/misc.py:96 +#, python-format +msgid "%(count)d plugin loaded" +msgid_plural "%(count)d plugins loaded" +msgstr[0] "" +msgstr[1] "" + +#: ipalib/output.py:110 +msgid "A dictionary representing an LDAP entry" +msgstr "" + +#: ipalib/output.py:118 +msgid "A list of LDAP entries" +msgstr "" + +#: ipalib/output.py:170 +msgid "All commands should at least have a result" +msgstr "" + +#: ipalib/parameters.py:415 +msgid "incorrect type" +msgstr "" + +#: ipalib/parameters.py:418 +msgid "Only one value is allowed" +msgstr "" + +#: ipalib/parameters.py:885 +msgid "this option is deprecated" +msgstr "" + +#: ipalib/parameters.py:1003 +msgid "must be True or False" +msgstr "" + +#: ipalib/parameters.py:1101 +msgid "must be an integer" +msgstr "" + +#: ipalib/parameters.py:1167 +#, python-format +msgid "must be at least %(minvalue)d" +msgstr "" + +#: ipalib/parameters.py:1179 +#, python-format +msgid "can be at most %(maxvalue)d" +msgstr "" + +#: ipalib/parameters.py:1197 +msgid "must be a decimal number" +msgstr "" + +#: ipalib/parameters.py:1243 +#, python-format +msgid "must be at least %(minvalue)s" +msgstr "" + +#: ipalib/parameters.py:1255 +#, python-format +msgid "can be at most %(maxvalue)s" +msgstr "" + +#: ipalib/parameters.py:1265 +#, python-format +msgid "" +"number class '%(cls)s' is not included in a list of allowed number classes: " +"%(allowed)s" +msgstr "" + +#: ipalib/parameters.py:1388 +#, python-format +msgid "must match pattern \"%(pattern)s\"" +msgstr "" + +#: ipalib/parameters.py:1408 +msgid "must be binary data" +msgstr "" + +#: ipalib/parameters.py:1427 +#, python-format +msgid "must be at least %(minlength)d bytes" +msgstr "" + +#: ipalib/parameters.py:1439 +#, python-format +msgid "can be at most %(maxlength)d bytes" +msgstr "" + +#: ipalib/parameters.py:1451 +#, python-format +msgid "must be exactly %(length)d bytes" +msgstr "" + +#: ipalib/parameters.py:1468 +msgid "must be a certificate" +msgstr "" + +#: ipalib/parameters.py:1504 +msgid "must be a certificate signing request" +msgstr "" + +#: ipalib/parameters.py:1550 +#, python-format +msgid "Failure decoding Certificate Signing Request: %s" +msgstr "" + +#: ipalib/parameters.py:1574 +msgid "must be Unicode text" +msgstr "" + +#: ipalib/parameters.py:1605 +msgid "Leading and trailing spaces are not allowed" +msgstr "" + +#: ipalib/parameters.py:1615 +#, python-format +msgid "must be at least %(minlength)d characters" +msgstr "" + +#: ipalib/parameters.py:1627 +#, python-format +msgid "can be at most %(maxlength)d characters" +msgstr "" + +#: ipalib/parameters.py:1639 +#, python-format +msgid "must be exactly %(length)d characters" +msgstr "" + +#: ipalib/parameters.py:1661 +#, python-format +msgid "The character %(char)r is not allowed." +msgstr "" + +#: ipalib/parameters.py:1714 +#, python-format +msgid "must be '%(value)s'" +msgstr "" + +#: ipalib/parameters.py:1717 +#, python-format +msgid "must be one of %(values)s" +msgstr "" + +#: ipalib/parameters.py:1834 +msgid "must be datetime value" +msgstr "" + +#: ipalib/parameters.py:1852 +msgid "does not match any of accepted formats: " +msgstr "" + +#: ipalib/parameters.py:2035 +msgid "incomplete time value" +msgstr "" + +#: ipalib/parameters.py:2112 +msgid "must be DNS name" +msgstr "" + +#: ipalib/parameters.py:2140 +msgid "must be absolute" +msgstr "" + +#: ipalib/parameters.py:2146 +msgid "must be relative" +msgstr "" + +#: ipalib/parameters.py:2157 +msgid "must be dictionary" +msgstr "" + +#: ipalib/parameters.py:2166 +msgid "must be Kerberos principal" +msgstr "" + +#: ipalib/parameters.py:2182 +#, python-format +msgid "Malformed principal: '%(value)s'" +msgstr "" + +#: ipalib/parameters.py:2191 +msgid "Service principal is required" +msgstr "" + +#: ipalib/cli.py:630 +#, python-format +msgid "Enter %(label)s again to verify: " +msgstr "" + +#: ipalib/cli.py:639 +msgid "Passwords do not match!" +msgstr "" + +#: ipalib/cli.py:662 +msgid "No matching entries found" +msgstr "" + +#: ipalib/cli.py:737 +msgid "Topic or Command" +msgstr "" + +#: ipalib/cli.py:738 +msgid "The topic or command name." +msgstr "" + +#: ipalib/cli.py:910 +msgid "Topic commands:" +msgstr "" + +#: ipalib/cli.py:916 +msgid "To get command help, use:" +msgstr "" + +#: ipalib/cli.py:917 +msgid " ipa --help" +msgstr "" + +#: ipalib/cli.py:928 +msgid "Command name" +msgstr "" + +#: ipalib/cli.py:1151 +msgid "Positional arguments" +msgstr "" + +#: ipalib/cli.py:1297 +#, python-format +msgid "Same as --%s" +msgstr "" + +#: ipalib/cli.py:1300 +msgid "Deprecated options" +msgstr "" + +#: ipalib/cli.py:1429 +msgid "No file to read" +msgstr "" + +#: ipalib/frontend.py:425 +msgid "Results are truncated, try a more specific search" +msgstr "" + +#: ipalib/frontend.py:584 ipatests/test_xmlrpc/test_ping_plugin.py:52 +#, python-format +msgid "Unknown option: %(option)s" +msgstr "" + +#: ipalib/frontend.py:981 ipaserver/plugins/batch.py:83 +msgid "Client version. Used to determine if server will accept request." +msgstr "" + +#: ipalib/plugable.py:534 +#, python-format +msgid "%(filename)s: file not found" +msgstr "" + +#: ipalib/plugable.py:607 +#, python-brace-format +msgid "Unable to parse option {item}" +msgstr "" + +#: ipalib/rpc.py:1109 +msgid "any of the configured servers" +msgstr "" + +#: ipalib/rpc.py:1192 +msgid "Exceeded number of tries to forward a request." +msgstr "" + +#: ipalib/util.py:213 +msgid "Filename is empty" +msgstr "" + +#: ipalib/util.py:217 +#, python-format +msgid "Permission denied: %(file)s" +msgstr "" + +#: ipalib/util.py:412 ipalib/util.py:944 +msgid "empty DNS label" +msgstr "" + +#: ipalib/util.py:415 +msgid "DNS label cannot be longer that 63 characters" +msgstr "" + +#: ipalib/util.py:420 +#, python-format +msgid "" +"only letters, numbers, %(chars)s are allowed. DNS label may not start or end " +"with %(chars2)s" +msgstr "" + +#: ipalib/util.py:436 +msgid "single label {}s are not supported" +msgstr "" + +#: ipalib/util.py:446 +msgid "too many '@' characters" +msgstr "" + +#: ipalib/util.py:475 +msgid "cannot be longer that {} characters" +msgstr "" + +#: ipalib/util.py:482 +msgid "hostname contains empty label (consecutive dots)" +msgstr "" + +#: ipalib/util.py:486 +msgid "not fully qualified" +msgstr "" + +#: ipalib/util.py:499 ipalib/util.py:508 +msgid "invalid SSH public key" +msgstr "" + +#: ipalib/util.py:511 +msgid "options are not allowed" +msgstr "" + +#: ipalib/util.py:747 +msgid "invalid hostmask" +msgstr "" + +#: ipalib/util.py:761 +#, python-format +msgid "query '%(owner)s %(rtype)s': %(error)s" +msgstr "" + +#: ipalib/util.py:765 +#, python-format +msgid "query '%(owner)s %(rtype)s' with EDNS0: %(error)s" +msgstr "" + +#: ipalib/util.py:769 +#, python-format +msgid "" +"answer to query '%(owner)s %(rtype)s' is missing DNSSEC signatures (no RRSIG " +"data)" +msgstr "" + +#: ipalib/util.py:774 +#, python-format +msgid "record '%(owner)s %(rtype)s' failed DNSSEC validation on server %(ip)s" +msgstr "" + +#: ipalib/util.py:942 +msgid "invalid escape code in domain name" +msgstr "" + +#: ipalib/util.py:946 +msgid "domain name cannot be longer than 255 characters" +msgstr "" + +#: ipalib/util.py:948 +msgid "DNS label cannot be longer than 63 characters" +msgstr "" + +#: ipalib/util.py:950 +msgid "invalid domain name" +msgstr "" + +#: ipalib/util.py:963 +#, python-format +msgid "domain name '%(domain)s' should be normalized to: %(normalized)s" +msgstr "" + +#: ipalib/util.py:1112 +#, python-format +msgid "invalid domain-name: %s" +msgstr "" + +#: ipalib/util.py:1124 +#, python-format +msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" +msgstr "" + +#: ipalib/util.py:1130 +msgid "invalid IP address format" +msgstr "" + +#: ipalib/util.py:1148 +#, python-format +msgid "%(port)s is not a valid port" +msgstr "" + +#: ipalib/util.py:1181 +msgid "" +"at least one value equal to the canonical principal name must be present" +msgstr "" + +#: ipalib/util.py:1268 +msgid "realm or UPN suffix overlaps with trusted domain namespace" +msgstr "" + +#: ipapython/dogtag.py:113 #, python-format msgid "Retrieving CA cert chain failed: %s" msgstr "" -#: ipapython/dogtag.py:120 +#: ipapython/dogtag.py:119 #, python-format msgid "request failed with HTTP status %d" msgstr "" -#: ipapython/dogtag.py:137 +#: ipapython/dogtag.py:136 #, python-format msgid "Retrieving CA status failed: %s" msgstr "" -#: ipapython/dogtag.py:159 +#: ipapython/dogtag.py:158 #, python-format msgid "Retrieving CA status failed with status %d" msgstr "" -#: ipapython/ipaldap.py:1192 +#: ipapython/ipaldap.py:1186 #, python-format msgid "objectclass %s not found" msgstr "" +#: ipaserver/dcerpc_common.py:20 +msgid "Trusting forest" +msgstr "" + +#: ipaserver/dcerpc_common.py:21 +msgid "Trusted forest" +msgstr "" + +#: ipaserver/dcerpc_common.py:26 +msgid "Established and verified" +msgstr "" + +#: ipaserver/dcerpc_common.py:27 +msgid "Waiting for confirmation by remote side" +msgstr "" + +#: ipaserver/dcerpc_common.py:30 +msgid "Unknown" +msgstr "" + +#: ipaserver/dcerpc_common.py:36 +msgid "Non-Active Directory domain" +msgstr "" + +#: ipaserver/dcerpc_common.py:37 ipaserver/plugins/internal.py:1247 +msgid "Active Directory domain" +msgstr "" + +#: ipaserver/dcerpc_common.py:38 +msgid "RFC4120-compliant Kerberos realm" +msgstr "" + +#: ipaserver/dcerpc_common.py:39 +msgid "" +"Non-transitive external trust to a domain in another Active Directory forest" +msgstr "" + +#: ipaserver/dcerpc_common.py:41 +msgid "Non-transitive external trust to an RFC4120-compliant Kerberos realm" +msgstr "" + +#: ipaserver/install/ipa_acme_manage.py:45 ipaserver/plugins/dogtag.py:1211 +msgid "Failed to authenticate to CA REST API" +msgstr "" + #: ipaserver/install/certs.py:480 #, python-format msgid "Unable to communicate with CMS (status %d)" msgstr "" -#: ipaserver/install/ipa_acme_manage.py:45 ipaserver/plugins/dogtag.py:1211 -msgid "Failed to authenticate to CA REST API" -msgstr "" - #: ipaserver/install/replication.py:1786 ipaserver/install/replication.py:1805 #, python-format msgid "Replication agreement for %(hostname)s not found" msgstr "" -#: ipaserver/plugins/delegation.py:67 -msgid "delegation" +#: ipaserver/plugins/automount.py:218 +msgid "automount location" msgstr "" -#: ipaserver/plugins/delegation.py:68 -msgid "delegations" +#: ipaserver/plugins/automount.py:219 +msgid "automount locations" msgstr "" -#: ipaserver/plugins/delegation.py:69 -msgid "Delegations" +#: ipaserver/plugins/automount.py:222 +msgid "Automount Locations" msgstr "" -#: ipaserver/plugins/delegation.py:70 -msgid "Delegation" +#: ipaserver/plugins/automount.py:223 +msgid "Automount Location" msgstr "" -#: ipaserver/plugins/delegation.py:101 ipaserver/plugins/aci.py:514 -#: ipaserver/plugins/permission.py:359 ipaserver/plugins/selfservice.py:94 -msgid "ACI" -msgstr "" - -#: ipaserver/plugins/delegation.py:132 +#: ipaserver/plugins/automount.py:263 #, python-format -msgid "Added delegation \"%(value)s\"" +msgid "Added automount location \"%(value)s\"" msgstr "" -#: ipaserver/plugins/delegation.py:153 +#: ipaserver/plugins/automount.py:283 #, python-format -msgid "Deleted delegation \"%(value)s\"" +msgid "Deleted automount location \"%(value)s\"" msgstr "" -#: ipaserver/plugins/delegation.py:170 +#: ipaserver/plugins/automount.py:296 #, python-format -msgid "Modified delegation \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/delegation.py:189 -#, python-format -msgid "%(count)d delegation matched" -msgid_plural "%(count)d delegations matched" +msgid "%(count)d automount location matched" +msgid_plural "%(count)d automount locations matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/dns.py:100 -msgid "" -"\n" -"Domain Name System (DNS)\n" +#: ipaserver/plugins/automount.py:349 +msgid "automount map" msgstr "" -#: ipaserver/plugins/dns.py:102 -msgid "" -"\n" -"Manage DNS zone and resource records.\n" +#: ipaserver/plugins/automount.py:350 +msgid "automount maps" msgstr "" -#: ipaserver/plugins/dns.py:104 -msgid "" -"\n" -"SUPPORTED ZONE TYPES\n" -"\n" -" * Master zone (dnszone-*), contains authoritative data.\n" -" * Forward zone (dnsforwardzone-*), forwards queries to configured " -"forwarders\n" -" (a set of DNS servers).\n" +#: ipaserver/plugins/automount.py:393 +msgid "Automount Maps" msgstr "" -#: ipaserver/plugins/dns.py:110 -msgid "" -"\n" -"USING STRUCTURED PER-TYPE OPTIONS\n" +#: ipaserver/plugins/automount.py:394 +msgid "Automount Map" msgstr "" -#: ipaserver/plugins/dns.py:112 -msgid "" -"\n" -"There are many structured DNS RR types where DNS data stored in LDAP server\n" -"is not just a scalar value, for example an IP address or a domain name, but\n" -"a data structure which may be often complex. A good example is a LOC record\n" -"[RFC1876] which consists of many mandatory and optional parts (degrees,\n" -"minutes, seconds of latitude and longitude, altitude or precision).\n" -msgstr "" - -#: ipaserver/plugins/dns.py:118 -msgid "" -"\n" -"It may be difficult to manipulate such DNS records without making a mistake\n" -"and entering an invalid value. DNS module provides an abstraction over " -"these\n" -"raw records and allows to manipulate each RR type with specific options. " -"For\n" -"each supported RR type, DNS module provides a standard option to manipulate\n" -"a raw records with format ---rec, e.g. --mx-rec, and special " -"options\n" -"for every part of the RR structure with format ---, e.g.\n" -"--mx-preference and --mx-exchanger.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:126 -msgid "" -"\n" -"When adding a record, either RR specific options or standard option for a " -"raw\n" -"value can be used, they just should not be combined in one add operation. " -"When\n" -"modifying an existing entry, new RR specific options can be used to change\n" -"one part of a DNS record, where the standard option for raw value is used\n" -"to specify the modified value. The following example demonstrates\n" -"a modification of MX record preference from 0 to 1 in a record without\n" -"modifying the exchanger:\n" -"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" -msgstr "" - -#: ipaserver/plugins/dns.py:135 -msgid "" -"\n" -"\n" -"EXAMPLES:\n" -msgstr "" - -#: ipaserver/plugins/dns.py:138 -msgid "" -"\n" -" Add new zone:\n" -" ipa dnszone-add example.com --admin-email=admin@example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:141 -msgid "" -"\n" -" Add system permission that can be used for per-zone privilege delegation:\n" -" ipa dnszone-add-permission example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:144 -msgid "" -"\n" -" Modify the zone to allow dynamic updates for hosts own records in realm " -"EXAMPLE.COM:\n" -" ipa dnszone-mod example.com --dynamic-update=TRUE\n" -msgstr "" - -#: ipaserver/plugins/dns.py:147 -msgid "" -"\n" -" This is the equivalent of:\n" -" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" -" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM " -"krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;\"\n" -msgstr "" - -#: ipaserver/plugins/dns.py:151 -msgid "" -"\n" -" Modify the zone to allow zone transfers for local network only:\n" -" ipa dnszone-mod example.com --allow-transfer=192.0.2.0/24\n" -msgstr "" - -#: ipaserver/plugins/dns.py:154 -msgid "" -"\n" -" Add new reverse zone specified by network IP address:\n" -" ipa dnszone-add --name-from-ip=192.0.2.0/24\n" -msgstr "" - -#: ipaserver/plugins/dns.py:157 -msgid "" -"\n" -" Add second nameserver for example.com:\n" -" ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:160 -msgid "" -"\n" -" Add a mail server for example.com:\n" -" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail1\"\n" -msgstr "" - -#: ipaserver/plugins/dns.py:163 -msgid "" -"\n" -" Add another record using MX record specific options:\n" -" ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n" -msgstr "" - -#: ipaserver/plugins/dns.py:166 -msgid "" -"\n" -" Add another record using interactive mode (started when dnsrecord-add, " -"dnsrecord-mod,\n" -" or dnsrecord-del are executed with no options):\n" -" ipa dnsrecord-add example.com @\n" -" Please choose a type of DNS resource record to be added\n" -" The most common types for this type of zone are: NS, MX, LOC\n" -"\n" -" DNS resource record type: MX\n" -" MX Preference: 30\n" -" MX Exchanger: mail3\n" -" Record name: example.com\n" -" MX record: 10 mail1, 20 mail2, 30 mail3\n" -" NS record: nameserver.example.com., nameserver2.example.com.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:179 -msgid "" -"\n" -" Delete previously added nameserver from example.com:\n" -" ipa dnsrecord-del example.com @ --ns-rec=nameserver2.example.com.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:182 -msgid "" -"\n" -" Add LOC record for example.com:\n" -" ipa dnsrecord-add example.com @ --loc-rec=\"49 11 42.4 N 16 36 29.6 E " -"227.64m\"\n" -msgstr "" - -#: ipaserver/plugins/dns.py:185 -msgid "" -"\n" -" Add new A record for www.example.com. Create a reverse record in " -"appropriate\n" -" reverse zone as well. In this case a PTR record \"2\" pointing to www." -"example.com\n" -" will be created in zone 2.0.192.in-addr.arpa.\n" -" ipa dnsrecord-add example.com www --a-rec=192.0.2.2 --a-create-reverse\n" -msgstr "" - -#: ipaserver/plugins/dns.py:190 -msgid "" -"\n" -" Add new PTR record for www.example.com\n" -" ipa dnsrecord-add 2.0.192.in-addr.arpa. 2 --ptr-rec=www.example.com.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:193 -msgid "" -"\n" -" Add new SRV records for LDAP servers. Three quarters of the requests\n" -" should go to fast.example.com, one quarter to slow.example.com. If neither\n" -" is available, switch to backup.example.com.\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example." -"com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example." -"com\"\n" -" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup." -"example.com\"\n" -msgstr "" - -#: ipaserver/plugins/dns.py:200 -msgid "" -"\n" -" The interactive mode can be used for easy modification:\n" -" ipa dnsrecord-mod example.com _ldap._tcp\n" -" No option to modify specific record provided.\n" -" Current DNS record contents:\n" -"\n" -" SRV record: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 " -"backup.example.com\n" -"\n" -" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No):\n" -" Modify SRV record '0 1 389 slow.example.com'? Yes/No (default No): y\n" -" SRV Priority [0]: (keep the default value)\n" -" SRV Weight [1]: 2 (modified value)\n" -" SRV Port [389]: (keep the default value)\n" -" SRV Target [slow.example.com]: (keep the default value)\n" -" 1 SRV record skipped. Only one value per DNS record type can be modified " -"at one time.\n" -" Record name: _ldap._tcp\n" -" SRV record: 0 3 389 fast.example.com, 1 1 389 backup.example.com, 0 2 " -"389 slow.example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:217 -msgid "" -"\n" -" After this modification, three fifths of the requests should go to\n" -" fast.example.com and two fifths to slow.example.com.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:220 -msgid "" -"\n" -" An example of the interactive mode for dnsrecord-del command:\n" -" ipa dnsrecord-del example.com www\n" -" No option to delete specific record provided.\n" -" Delete all? Yes/No (default No): (do not delete all records)\n" -" Current DNS record contents:\n" -"\n" -" A record: 192.0.2.2, 192.0.2.3\n" -"\n" -" Delete A record '192.0.2.2'? Yes/No (default No):\n" -" Delete A record '192.0.2.3'? Yes/No (default No): y\n" -" Record name: www\n" -" A record: 192.0.2.2 (A record 192.0.2.3 has been " -"deleted)\n" -msgstr "" - -#: ipaserver/plugins/dns.py:233 -msgid "" -"\n" -" Show zone example.com:\n" -" ipa dnszone-show example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:236 -msgid "" -"\n" -" Find zone with \"example\" in its domain name:\n" -" ipa dnszone-find example\n" -msgstr "" - -#: ipaserver/plugins/dns.py:239 -msgid "" -"\n" -" Find records for resources with \"www\" in their name in zone example.com:\n" -" ipa dnsrecord-find example.com www\n" -msgstr "" - -#: ipaserver/plugins/dns.py:242 -msgid "" -"\n" -" Find A records with value 192.0.2.2 in zone example.com\n" -" ipa dnsrecord-find example.com --a-rec=192.0.2.2\n" -msgstr "" - -#: ipaserver/plugins/dns.py:245 -msgid "" -"\n" -" Show records for resource www in zone example.com\n" -" ipa dnsrecord-show example.com www\n" -msgstr "" - -#: ipaserver/plugins/dns.py:248 -msgid "" -"\n" -" Delegate zone sub.example to another nameserver:\n" -" ipa dnsrecord-add example.com ns.sub --a-rec=203.0.113.1\n" -" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:252 -msgid "" -"\n" -" Delete zone example.com with all resource records:\n" -" ipa dnszone-del example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:255 -msgid "" -"\n" -" If a global forwarder is configured, all queries for which this server is " -"not\n" -" authoritative (e.g. sub.example.com) will be routed to the global " -"forwarder.\n" -" Global forwarding configuration can be overridden per-zone.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:259 -msgid "" -"\n" -" Semantics of forwarding in IPA matches BIND semantics and depends on the " -"type\n" -" of zone:\n" -" * Master zone: local BIND replies authoritatively to queries for data in\n" -" the given zone (including authoritative NXDOMAIN answers) and forwarding\n" -" affects only queries for names below zone cuts (NS records) of locally\n" -" served zones.\n" -"\n" -" * Forward zone: forward zone contains no authoritative data. BIND " -"forwards\n" -" queries, which cannot be answered from its local cache, to configured\n" -" forwarders.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:270 -msgid "" -"\n" -" Semantics of the --forward-policy option:\n" -" * none - disable forwarding for the given zone.\n" -" * first - forward all queries to configured forwarders. If they fail,\n" -" do resolution using DNS root servers.\n" -" * only - forward all queries to configured forwarders and if they fail,\n" -" return failure.\n" -msgstr "" - -#: ipaserver/plugins/dns.py:277 -msgid "" -"\n" -" Disable global forwarding for given sub-tree:\n" -" ipa dnszone-mod example.com --forward-policy=none\n" -msgstr "" - -#: ipaserver/plugins/dns.py:280 -msgid "" -"\n" -" This configuration forwards all queries for names outside the example.com\n" -" sub-tree to global forwarders. Normal recursive resolution process is used\n" -" for names inside the example.com sub-tree (i.e. NS records are followed " -"etc.).\n" -msgstr "" - -#: ipaserver/plugins/dns.py:284 -msgid "" -"\n" -" Forward all requests for the zone external.example.com to another " -"forwarder\n" -" using a \"first\" policy (it will send the queries to the selected " -"forwarder\n" -" and if not answered it will use global root servers):\n" -" ipa dnsforwardzone-add external.example.com --forward-policy=first \\\n" -" --forwarder=203.0.113.1\n" -msgstr "" - -#: ipaserver/plugins/dns.py:290 -msgid "" -"\n" -" Change forward-policy for external.example.com:\n" -" ipa dnsforwardzone-mod external.example.com --forward-policy=only\n" -msgstr "" - -#: ipaserver/plugins/dns.py:293 -msgid "" -"\n" -" Show forward zone external.example.com:\n" -" ipa dnsforwardzone-show external.example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:296 -msgid "" -"\n" -" List all forward zones:\n" -" ipa dnsforwardzone-find\n" -msgstr "" - -#: ipaserver/plugins/dns.py:299 -msgid "" -"\n" -" Delete forward zone external.example.com:\n" -" ipa dnsforwardzone-del external.example.com\n" -msgstr "" - -#: ipaserver/plugins/dns.py:302 -msgid "" -"\n" -" Resolve a host name to see if it exists (will add default IPA domain\n" -" if one is not included):\n" -" ipa dns-resolve www.example.com\n" -" ipa dns-resolve www\n" -msgstr "" - -#: ipaserver/plugins/dns.py:307 -msgid "" -"\n" -"\n" -"GLOBAL DNS CONFIGURATION\n" -msgstr "" - -#: ipaserver/plugins/dns.py:310 -msgid "" -"\n" -"DNS configuration passed to command line install script is stored in a " -"local\n" -"configuration file on each IPA server where DNS service is configured. " -"These\n" -"local settings can be overridden with a common configuration stored in LDAP\n" -"server:\n" -msgstr "" - -#: ipaserver/plugins/dns.py:315 -msgid "" -"\n" -" Show global DNS configuration:\n" -" ipa dnsconfig-show\n" -msgstr "" - -#: ipaserver/plugins/dns.py:318 -msgid "" -"\n" -" Modify global DNS configuration and set a list of global forwarders:\n" -" ipa dnsconfig-mod --forwarder=203.0.113.113\n" -msgstr "" - -#: ipaserver/plugins/dns.py:406 -msgid "invalid IP network format" -msgstr "" - -#: ipaserver/plugins/dns.py:415 -msgid "each ACL element must be terminated with a semicolon" -msgstr "" - -#: ipaserver/plugins/dns.py:431 -msgid "invalid address format" -msgstr "" - -#: ipaserver/plugins/dns.py:475 -msgid "" -"expected format: <0-255> <0-255> <0-65535> even-" -"length_hexadecimal_digits_or_hyphen" -msgstr "" - -#: ipaserver/plugins/dns.py:484 -msgid "algorithm value: allowed interval 0-255" -msgstr "" - -#: ipaserver/plugins/dns.py:487 -msgid "flags value: allowed interval 0-255" -msgstr "" - -#: ipaserver/plugins/dns.py:490 -msgid "iterations value: allowed interval 0-65535" -msgstr "" - -#: ipaserver/plugins/dns.py:498 +#: ipaserver/plugins/automount.py:401 #, python-format -msgid "salt value: %(err)s" +msgid "Added automount map \"%(value)s\"" msgstr "" -#: ipaserver/plugins/dns.py:505 -msgid "invalid domain-name: not fully qualified" -msgstr "" - -#: ipaserver/plugins/dns.py:514 -msgid "should not be a wildcard domain name (RFC 4592 section 4)" -msgstr "" - -#: ipaserver/plugins/dns.py:555 +#: ipaserver/plugins/automount.py:408 #, python-format -msgid "" -"All nameservers failed to answer the query for DNS reverse zone %(revdns)s" +msgid "Deleted automount map \"%(value)s\"" msgstr "" -#: ipaserver/plugins/dns.py:561 +#: ipaserver/plugins/automount.py:428 #, python-format -msgid "" -"No answers could be found in the specified lifetime for DNS reverse zone " -"%(revdns)s" +msgid "Modified automount map \"%(value)s\"" msgstr "" -#: ipaserver/plugins/dns.py:571 +#: ipaserver/plugins/automount.py:436 #, python-format -msgid "" -"DNS reverse zone %(revzone)s for IP address %(addr)s is not managed by this " -"server" -msgstr "" - -#: ipaserver/plugins/dns.py:588 -#, python-format -msgid "DNS zone %(zone)s not found" -msgstr "" - -#: ipaserver/plugins/dns.py:603 -#, python-format -msgid "IP address %(ip)s is already assigned in domain %(domain)s." -msgstr "" - -#: ipaserver/plugins/dns.py:613 -#, python-format -msgid "" -"Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s." -msgstr "" - -#: ipaserver/plugins/dns.py:688 -#, python-format -msgid "%s record" -msgstr "" - -#: ipaserver/plugins/dns.py:690 -#, python-format -msgid "Raw %s records" -msgstr "" - -#: ipaserver/plugins/dns.py:691 -#, python-format -msgid "%s Record" -msgstr "" - -#: ipaserver/plugins/dns.py:692 -#, python-format -msgid "(see RFC %s for details)" -msgstr "" - -#: ipaserver/plugins/dns.py:754 -#, python-format -msgid "'%s' is a required part of DNS record" -msgstr "" - -#: ipaserver/plugins/dns.py:761 -msgid "Invalid number of parts!" -msgstr "" - -#: ipaserver/plugins/dns.py:813 -#, python-format -msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin" -msgstr "" - -#: ipaserver/plugins/dns.py:829 -#, python-format -msgid "format must be specified as \"%(format)s\" %(rfcs)s" -msgstr "" - -#: ipaserver/plugins/dns.py:904 -msgid "Create reverse" -msgstr "" - -#: ipaserver/plugins/dns.py:940 -#, python-format -msgid "Cannot create reverse record for \"%(value)s\": %(exc)s" -msgstr "" - -#: ipaserver/plugins/dns.py:1115 ipaserver/plugins/dns.py:1272 -msgid "Exchanger" -msgstr "" - -#: ipaserver/plugins/dns.py:1190 -msgid "" -"format must be specified as\n" -" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] " -"[siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" -" where:\n" -" d1: [0 .. 90] (degrees latitude)\n" -" d2: [0 .. 180] (degrees longitude)\n" -" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" -" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" -" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" -" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" -" See RFC 1876 for details" -msgstr "" - -#: ipaserver/plugins/dns.py:1244 -#, python-format -msgid "'%(required)s' must not be empty when '%(name)s' is set" -msgstr "" - -#: ipaserver/plugins/dns.py:1299 -msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\"" -msgstr "" - -#: ipaserver/plugins/dns.py:1360 ipaserver/plugins/dns.py:1490 -msgid "Priority (order)" -msgstr "" - -#: ipaserver/plugins/dns.py:1361 -msgid "" -"Lower number means higher priority. Clients will attempt to contact the " -"server with the lowest-numbered priority they can reach." -msgstr "" - -#: ipaserver/plugins/dns.py:1369 ipaserver/plugins/dns.py:1499 -msgid "Relative weight for entries with the same priority." -msgstr "" - -#: ipaserver/plugins/dns.py:1389 -msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" -msgstr "" - -#: ipaserver/plugins/dns.py:1491 -msgid "" -"Lower number means higher priority. Clients will attempt to contact the URI " -"with the lowest-numbered priority they can reach." -msgstr "" - -#: ipaserver/plugins/dns.py:1504 -msgid "Target Uniform Resource Identifier" -msgstr "" - -#: ipaserver/plugins/dns.py:1505 -msgid "Target Uniform Resource Identifier according to RFC 3986" -msgstr "" - -#: ipaserver/plugins/dns.py:1587 -#, python-format -msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" -msgstr "" - -#: ipaserver/plugins/dns.py:2056 -msgid "Managedby permission" -msgstr "" - -#: ipaserver/plugins/dns.py:2063 ipaserver/plugins/dns.py:2237 -#: ipaserver/plugins/dns.py:3210 ipaserver/plugins/dns.py:4191 -#: ipaserver/plugins/dnsserver.py:148 -msgid "DNS is not configured" -msgstr "" - -#: ipaserver/plugins/dns.py:2157 -msgid "cannot be used when a zone is specified" -msgstr "" - -#: ipaserver/plugins/dns.py:2169 -msgid "Only one zone type is allowed per zone name" -msgstr "" - -#: ipaserver/plugins/dns.py:2312 -#, python-format -msgid "Added system permission \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:2342 -#, python-format -msgid "permission \"%(value)s\" already exists" -msgstr "" - -#: ipaserver/plugins/dns.py:2370 -#, python-format -msgid "Removed system permission \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:2406 -msgid "DNS zone" -msgstr "" - -#: ipaserver/plugins/dns.py:2407 -msgid "DNS zones" -msgstr "" - -#: ipaserver/plugins/dns.py:2415 -msgid "DNS Zones" -msgstr "" - -#: ipaserver/plugins/dns.py:2416 -msgid "DNS Zone" -msgstr "" - -#: ipaserver/plugins/dns.py:2490 -msgid "Default time to live" -msgstr "" - -#: ipaserver/plugins/dns.py:2491 -msgid "Time to live for records without explicit TTL definition" -msgstr "" - -#: ipaserver/plugins/dns.py:2706 -msgid "setting Authoritative nameserver" -msgstr "" - -#: ipaserver/plugins/dns.py:2707 -msgid "It is used only for setting the SOA MNAME attribute." -msgstr "" - -#: ipaserver/plugins/dns.py:2709 -msgid "NS record(s) can be edited in zone apex - '@'. " -msgstr "" - -#: ipaserver/plugins/dns.py:2744 -msgid "" -msgstr "" - -#: ipaserver/plugins/dns.py:2808 -msgid "Nameserver for reverse zone cannot be a relative DNS name" -msgstr "" - -#: ipaserver/plugins/dns.py:2863 -#, python-format -msgid "Deleted DNS zone \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:2926 -msgid "is required" -msgstr "" - -#: ipaserver/plugins/dns.py:3008 -#, python-format -msgid "Disabled DNS zone \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:3019 -#, python-format -msgid "Enabled DNS zone \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:3044 -msgid "DNS resource record" -msgstr "" - -#: ipaserver/plugins/dns.py:3045 -msgid "DNS resource records" -msgstr "" - -#: ipaserver/plugins/dns.py:3052 -msgid "DNS Resource Records" -msgstr "" - -#: ipaserver/plugins/dns.py:3053 -msgid "DNS Resource Record" -msgstr "" - -#: ipaserver/plugins/dns.py:3088 -msgid "DS record must not be in zone apex (RFC 4035 section 2.4)" -msgstr "" - -#: ipaserver/plugins/dns.py:3105 -msgid "" -"out-of-zone data: record name must be a subdomain of the zone or a relative " -"name" -msgstr "" - -#: ipaserver/plugins/dns.py:3116 -#, python-format -msgid "" -"owner of %(types)s records should not be a wildcard domain name (RFC 4592 " -"section 4)" -msgstr "" - -#: ipaserver/plugins/dns.py:3161 -#, python-format -msgid "" -"Reverse zone %(name)s requires exactly %(count)d IP address components, " -"%(user_count)d given" -msgstr "" - -#: ipaserver/plugins/dns.py:3203 -msgid "only master zones can contain records" -msgstr "" - -#: ipaserver/plugins/dns.py:3301 -msgid "only one CNAME record is allowed per name (RFC 2136, section 1.1.5)" -msgstr "" - -#: ipaserver/plugins/dns.py:3307 -msgid "" -"CNAME record is not allowed to coexist with any other record (RFC 1034, " -"section 3.6.2)" -msgstr "" - -#: ipaserver/plugins/dns.py:3315 -msgid "only one DNAME record is allowed per name (RFC 6672, section 2.4)" -msgstr "" - -#: ipaserver/plugins/dns.py:3331 -#, python-format -msgid "" -"NS record is not allowed to coexist with an %(type)s record except when " -"located in a zone root record (RFC 2181, section 6.1)" -msgstr "" - -#: ipaserver/plugins/dns.py:3347 -msgid "" -"DS record requires to coexist with an NS record (RFC 4592 section 4.6, RFC " -"4035 section 2.4)" -msgstr "" - -#: ipaserver/plugins/dns.py:3628 -#, python-format -msgid "Raw value of a DNS record was already set by \"%(name)s\" option" -msgstr "" - -#: ipaserver/plugins/dns.py:3754 -msgid "DNS zone root record cannot be renamed" -msgstr "" - -#: ipaserver/plugins/dns.py:3772 -msgid "DNS records can be only updated one at a time" -msgstr "" - -#: ipaserver/plugins/dns.py:3865 -#, python-format -msgid "Deleted record \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:3958 -#, python-format -msgid "Zone record '%s' cannot be deleted" -msgstr "" - -#: ipaserver/plugins/dns.py:4060 -#, python-format -msgid "Found '%(value)s'" -msgstr "" - -#: ipaserver/plugins/dns.py:4075 -#, python-format -msgid "Host '%(host)s' not found" -msgstr "" - -#: ipaserver/plugins/dns.py:4106 -msgid "DNS configuration options" -msgstr "" - -#: ipaserver/plugins/dns.py:4111 ipaserver/plugins/dns.py:4112 -msgid "DNS Global Configuration" -msgstr "" - -#: ipaserver/plugins/dns.py:4143 -msgid "IPA DNS version" -msgstr "" - -#: ipaserver/plugins/dns.py:4147 ipaserver/plugins/config.py:336 -msgid "IPA DNS servers" -msgstr "" - -#: ipaserver/plugins/dns.py:4148 -msgid "List of IPA masters configured as DNS servers" -msgstr "" - -#: ipaserver/plugins/dns.py:4153 ipaserver/plugins/config.py:348 -msgid "IPA DNSSec key master" -msgstr "" - -#: ipaserver/plugins/dns.py:4154 -msgid "IPA server configured as DNSSec key master" -msgstr "" - -#: ipaserver/plugins/dns.py:4205 -msgid "Global DNS configuration is empty" -msgstr "" - -#: ipaserver/plugins/dns.py:4286 -msgid "DNS forward zone" -msgstr "" - -#: ipaserver/plugins/dns.py:4287 -msgid "DNS forward zones" -msgstr "" - -#: ipaserver/plugins/dns.py:4289 -msgid "DNS Forward Zones" -msgstr "" - -#: ipaserver/plugins/dns.py:4290 -msgid "DNS Forward Zone" -msgstr "" - -#: ipaserver/plugins/dns.py:4397 ipaserver/plugins/dns.py:4447 -msgid "Please specify forwarders." -msgstr "" - -#: ipaserver/plugins/dns.py:4416 -#, python-format -msgid "Deleted DNS forward zone \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:4473 -#, python-format -msgid "Disabled DNS forward zone \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:4479 -#, python-format -msgid "Enabled DNS forward zone \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dns.py:4502 -msgid "IPA DNS records" -msgstr "" - -#: ipaserver/plugins/dns.py:4506 -msgid "IPA location records" -msgstr "" - -#: ipaserver/plugins/dns.py:4513 -msgid "Update location and IPA server DNS records" -msgstr "" - -#: ipaserver/plugins/dns.py:4524 -msgid "Result of the command" -msgstr "" - -#: ipaserver/plugins/dns.py:4531 -msgid "Dry run" -msgstr "" - -#: ipaserver/plugins/dns.py:4532 -msgid "Do not update records only return expected records" -msgstr "" - -#: ipaserver/plugins/hbac.py:7 -msgid "Host-based access control commands" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:64 -msgid "HBAC service group" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:65 -msgid "HBAC service groups" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:108 ipaserver/plugins/hbacrule.py:290 -msgid "HBAC Service Groups" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:109 -msgid "HBAC Service Group" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:131 -#, python-format -msgid "Added HBAC service group \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:139 -#, python-format -msgid "Deleted HBAC service group \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:147 -#, python-format -msgid "Modified HBAC service group \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/hbacsvcgroup.py:156 -#, python-format -msgid "%(count)d HBAC service group matched" -msgid_plural "%(count)d HBAC service groups matched" +msgid "%(count)d automount map matched" +msgid_plural "%(count)d automount maps matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/topology.py:24 -msgid "" -"\n" -"Topology\n" -"\n" -"Management of a replication topology at domain level 1.\n" +#: ipaserver/plugins/automount.py:448 +msgid "Automount key object." msgstr "" -#: ipaserver/plugins/topology.py:28 -msgid "" -"\n" -"IPA server's data is stored in LDAP server in two suffixes:\n" -"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " -"data\n" -"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" -" contains data for Certificate Server component\n" +#: ipaserver/plugins/automount.py:452 +msgid "automount key" msgstr "" -#: ipaserver/plugins/topology.py:33 -msgid "" -"\n" -"Data stored on IPA servers is replicated to other IPA servers. The way it " -"is\n" -"replicated is defined by replication agreements. Replication agreements " -"needs\n" -"to be set for both suffixes separately. On domain level 0 they are managed\n" -"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " -"1\n" -"they are managed centrally using `ipa topology*` commands.\n" +#: ipaserver/plugins/automount.py:453 +msgid "automount keys" msgstr "" -#: ipaserver/plugins/topology.py:39 -msgid "" -"\n" -"Agreements are represented by topology segments. By default topology " -"segment\n" -"represents 2 replication agreements - one for each direction, e.g., A to B " -"and\n" -"B to A. Creation of unidirectional segments is not allowed.\n" +#: ipaserver/plugins/automount.py:512 +msgid "Automount Keys" msgstr "" -#: ipaserver/plugins/topology.py:43 -msgid "" -"\n" -"To verify that no server is disconnected in the topology of the given " -"suffix,\n" -"use:\n" -" ipa topologysuffix-verify $suffix\n" +#: ipaserver/plugins/automount.py:513 +msgid "Automount Key" msgstr "" -#: ipaserver/plugins/topology.py:47 -msgid "" -"\n" -"\n" -"Examples:\n" -" Find all IPA servers:\n" -" ipa server-find\n" -msgstr "" - -#: ipaserver/plugins/topology.py:52 -msgid "" -"\n" -" Find all suffixes:\n" -" ipa topologysuffix-find\n" -msgstr "" - -#: ipaserver/plugins/topology.py:55 -msgid "" -"\n" -" Add topology segment to 'domain' suffix:\n" -" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" -msgstr "" - -#: ipaserver/plugins/topology.py:58 -msgid "" -"\n" -" Add topology segment to 'ca' suffix:\n" -" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" -msgstr "" - -#: ipaserver/plugins/topology.py:61 -msgid "" -"\n" -" List all topology segments in 'domain' suffix:\n" -" ipa topologysegment-find domain\n" -msgstr "" - -#: ipaserver/plugins/topology.py:64 -msgid "" -"\n" -" List all topology segments in 'ca' suffix:\n" -" ipa topologysegment-find ca\n" -msgstr "" - -#: ipaserver/plugins/topology.py:67 -msgid "" -"\n" -" Delete topology segment in 'domain' suffix:\n" -" ipa topologysegment-del domain segment_name\n" -msgstr "" - -#: ipaserver/plugins/topology.py:70 -msgid "" -"\n" -" Delete topology segment in 'ca' suffix:\n" -" ipa topologysegment-del ca segment_name\n" -msgstr "" - -#: ipaserver/plugins/topology.py:73 -msgid "" -"\n" -" Verify topology of 'domain' suffix:\n" -" ipa topologysuffix-verify domain\n" -msgstr "" - -#: ipaserver/plugins/topology.py:76 -msgid "" -"\n" -" Verify topology of 'ca' suffix:\n" -" ipa topologysuffix-verify ca\n" -msgstr "" - -#: ipaserver/plugins/topology.py:92 -#, python-brace-format -msgid "Topology management requires minimum domain level {0} " -msgstr "" - -#: ipaserver/plugins/topology.py:104 -msgid "segment" -msgstr "" - -#: ipaserver/plugins/topology.py:105 -msgid "segments" -msgstr "" - -#: ipaserver/plugins/topology.py:119 -msgid "Topology Segments" -msgstr "" - -#: ipaserver/plugins/topology.py:120 -msgid "Topology Segment" -msgstr "" - -#: ipaserver/plugins/topology.py:226 +#: ipaserver/plugins/automount.py:514 #, python-format -msgid "left node is not a topology node: %(leftnode)s" +msgid "" +"The key,info pair must be unique. A key named %(key)s with info %(info)s " +"already exists" msgstr "" -#: ipaserver/plugins/topology.py:233 +#: ipaserver/plugins/automount.py:515 #, python-format -msgid "right node is not a topology node: %(rightnode)s" +msgid "key named %(key)s already exists" msgstr "" -#: ipaserver/plugins/topology.py:250 -msgid "left node and right node must not be the same" -msgstr "" - -#: ipaserver/plugins/topology.py:261 -#, python-brace-format -msgid "left node ({host}) does not support suffix '{suff}'" -msgstr "" - -#: ipaserver/plugins/topology.py:269 -#, python-brace-format -msgid "right node ({host}) does not support suffix '{suff}'" -msgstr "" - -#: ipaserver/plugins/topology.py:280 +#: ipaserver/plugins/automount.py:516 #, python-format -msgid "%(count)d segment matched" -msgid_plural "%(count)d segments matched" +msgid "The automount key %(key)s with info %(info)s does not exist" +msgstr "" + +#: ipaserver/plugins/automount.py:566 +#, python-format +msgid "" +"More than one entry with key %(key)s found, use --info to select specific " +"entry." +msgstr "" + +#: ipaserver/plugins/automount.py:625 +#, python-format +msgid "Added automount key \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automount.py:654 +#, python-format +msgid "Added automount indirect map \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automount.py:678 +msgid "mount point is relative to parent map, cannot begin with /" +msgstr "" + +#: ipaserver/plugins/automount.py:707 +#, python-format +msgid "Deleted automount key \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automount.py:748 +#, python-format +msgid "Modified automount key \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automount.py:807 +#, python-format +msgid "%(count)d automount key matched" +msgid_plural "%(count)d automount keys matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/topology.py:289 +#: ipaserver/plugins/baseuser.py:57 +msgid "" +"\n" +"Baseuser\n" +"\n" +"This contains common definitions for user/stageuser\n" +msgstr "" + +#: ipaserver/plugins/baseuser.py:88 +msgid "must be TRUE or FALSE" +msgstr "" + +#: ipaserver/plugins/baseuser.py:145 +msgid "" +"Object class ipaNTUserAttrs is missing, user entry cannot have SMB " +"attributes." +msgstr "" + +#: ipaserver/plugins/baseuser.py:259 ipaserver/plugins/host.py:562 +#: ipaserver/plugins/service.py:511 +msgid "Principal alias" +msgstr "" + +#: ipaserver/plugins/baseuser.py:271 +msgid "User password expiration" +msgstr "" + +#: ipaserver/plugins/baseuser.py:355 ipaserver/plugins/host.py:581 +msgid "SSH public key fingerprint" +msgstr "" + +#: ipaserver/plugins/baseuser.py:401 ipaserver/plugins/baseuser.py:846 +#: ipaserver/plugins/certmap.py:606 ipaserver/plugins/idviews.py:1057 +msgid "Base-64 encoded user certificate" +msgstr "" + +#: ipaserver/plugins/baseuser.py:406 ipaserver/plugins/baseuser.py:407 +#: ipaserver/plugins/internal.py:721 +msgid "Certificate mapping data" +msgstr "" + +#: ipaserver/plugins/baseuser.py:412 +msgid "SMB logon script path" +msgstr "" + +#: ipaserver/plugins/baseuser.py:417 +msgid "SMB profile path" +msgstr "" + +#: ipaserver/plugins/baseuser.py:422 +msgid "SMB Home Directory" +msgstr "" + +#: ipaserver/plugins/baseuser.py:427 +msgid "SMB Home Directory Drive" +msgstr "" + +#: ipaserver/plugins/baseuser.py:451 ipaserver/plugins/baseuser.py:455 #, python-format -msgid "Added segment \"%(value)s\"" +msgid "invalid e-mail format: %(email)s" msgstr "" -#: ipaserver/plugins/topology.py:302 +#: ipaserver/plugins/baseuser.py:482 #, python-format -msgid "Deleted segment \"%(value)s\"" +msgid "manager %(manager)s not found" msgstr "" -#: ipaserver/plugins/topology.py:314 +#: ipaserver/plugins/baseuser.py:574 ipaserver/plugins/host.py:692 +#: ipaserver/plugins/stageuser.py:329 ipaserver/plugins/stageuser.py:533 +#: ipaserver/plugins/user.py:562 #, python-format -msgid "Modified segment \"%(value)s\"" +msgid "can be at most %(len)d characters" msgstr "" -#: ipaserver/plugins/topology.py:329 -#, python-format -msgid "%(value)s" -msgstr "" - -#: ipaserver/plugins/topology.py:365 -msgid "left or right node has to be specified" -msgstr "" - -#: ipaserver/plugins/topology.py:370 -msgid "only one node can be specified" -msgstr "" - -#: ipaserver/plugins/topology.py:374 -#, python-format -msgid "Replication refresh for segment: \"%(pkey)s\" requested." -msgstr "" - -#: ipaserver/plugins/topology.py:377 -#, python-format -msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." -msgstr "" - -#: ipaserver/plugins/topology.py:408 -msgid "suffixes" -msgstr "" - -#: ipaserver/plugins/topology.py:412 -msgid "Topology suffixes" -msgstr "" - -#: ipaserver/plugins/topology.py:413 -msgid "Topology suffix" -msgstr "" - -#: ipaserver/plugins/topology.py:435 -#, python-format -msgid "%(count)d topology suffix matched" -msgid_plural "%(count)d topology suffixes matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/topology.py:446 -#, python-format -msgid "Deleted topology suffix \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/topology.py:460 -#, python-format -msgid "Added topology suffix \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/topology.py:474 -#, python-format -msgid "Modified topology suffix \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/topology.py:489 -msgid "" -"\n" -"Verify replication topology for suffix.\n" -"\n" -"Checks done:\n" -" 1. check if a topology is not disconnected. In other words if there are\n" -" replication paths between all servers.\n" -" 2. check if servers don't have more than the recommended number of\n" -" replication agreements\n" -msgstr "" - -#: ipaserver/plugins/automember.py:43 -msgid "" -"\n" -"Auto Membership Rule.\n" -msgstr "" - -#: ipaserver/plugins/automember.py:45 -msgid "" -"\n" -"Bring clarity to the membership of hosts and users by configuring inclusive\n" -"or exclusive regex patterns, you can automatically assign a new entries " -"into\n" -"a group or hostgroup based upon attribute information.\n" -msgstr "" - -#: ipaserver/plugins/automember.py:49 -msgid "" -"\n" -"A rule is directly associated with a group by name, so you cannot create\n" -"a rule without an accompanying group or hostgroup.\n" -msgstr "" - -#: ipaserver/plugins/automember.py:52 -msgid "" -"\n" -"A condition is a regular expression used by 389-ds to match a new incoming\n" -"entry with an automember rule. If it matches an inclusive rule then the\n" -"entry is added to the appropriate group or hostgroup.\n" -msgstr "" - -#: ipaserver/plugins/automember.py:56 -msgid "" -"\n" -"A default group or hostgroup could be specified for entries that do not\n" -"match any rule. In case of user entries this group will be a fallback group\n" -"because all users are by default members of group specified in IPA config.\n" -msgstr "" - -#: ipaserver/plugins/automember.py:60 -msgid "" -"\n" -"The automember-rebuild command can be used to retroactively run automember " -"rules\n" -"against existing entries, thus rebuilding their membership.\n" -msgstr "" - -#: ipaserver/plugins/automember.py:65 -msgid "" -"\n" -" Add the initial group or hostgroup:\n" -" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" -" ipa group-add --desc=\"Developers\" devel\n" -msgstr "" - -#: ipaserver/plugins/automember.py:69 -msgid "" -"\n" -" Add the initial rule:\n" -" ipa automember-add --type=hostgroup webservers\n" -" ipa automember-add --type=group devel\n" -msgstr "" - -#: ipaserver/plugins/automember.py:73 -msgid "" -"\n" -" Add a condition to the rule:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -" ipa automember-add-condition --key=manager --type=group --inclusive-" -"regex=^uid=mscott devel\n" -msgstr "" - -#: ipaserver/plugins/automember.py:77 -msgid "" -"\n" -" Add an exclusive condition to the rule to prevent auto assignment:\n" -" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" -"regex=^web5\\.example\\.com webservers\n" -msgstr "" - -#: ipaserver/plugins/automember.py:80 -msgid "" -"\n" -" Add a host:\n" -" ipa host-add web1.example.com\n" -msgstr "" - -#: ipaserver/plugins/automember.py:83 -msgid "" -"\n" -" Add a user:\n" -" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" -msgstr "" - -#: ipaserver/plugins/automember.py:86 -msgid "" -"\n" -" Verify automembership:\n" -" ipa hostgroup-show webservers\n" -" Host-group: webservers\n" -" Description: Web Servers\n" -" Member hosts: web1.example.com\n" -"\n" -" ipa group-show devel\n" -" Group name: devel\n" -" Description: Developers\n" -" GID: 1004200000\n" -" Member users: tuser\n" -msgstr "" - -#: ipaserver/plugins/automember.py:98 -msgid "" -"\n" -" Remove a condition from the rule:\n" -" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" -"regex=^web[1-9]+\\.example\\.com webservers\n" -msgstr "" - -#: ipaserver/plugins/automember.py:101 -msgid "" -"\n" -" Modify the automember rule:\n" -" ipa automember-mod\n" -msgstr "" - -#: ipaserver/plugins/automember.py:104 -msgid "" -"\n" -" Set the default (fallback) target group:\n" -" ipa automember-default-group-set --default-group=webservers --" -"type=hostgroup\n" -" ipa automember-default-group-set --default-group=ipausers --type=group\n" -msgstr "" - -#: ipaserver/plugins/automember.py:108 -msgid "" -"\n" -" Remove the default (fallback) target group:\n" -" ipa automember-default-group-remove --type=hostgroup\n" -" ipa automember-default-group-remove --type=group\n" -msgstr "" - -#: ipaserver/plugins/automember.py:112 -msgid "" -"\n" -" Show the default (fallback) target group:\n" -" ipa automember-default-group-show --type=hostgroup\n" -" ipa automember-default-group-show --type=group\n" -msgstr "" - -#: ipaserver/plugins/automember.py:116 -msgid "" -"\n" -" Find all of the automember rules:\n" -" ipa automember-find\n" -msgstr "" - -#: ipaserver/plugins/automember.py:119 -msgid "" -"\n" -" Find all of the orphan automember rules:\n" -" ipa automember-find-orphans --type=hostgroup\n" -" Find all of the orphan automember rules and remove them:\n" -" ipa automember-find-orphans --type=hostgroup --remove\n" -msgstr "" - -#: ipaserver/plugins/automember.py:124 -msgid "" -"\n" -" Display a automember rule:\n" -" ipa automember-show --type=hostgroup webservers\n" -" ipa automember-show --type=group devel\n" -msgstr "" - -#: ipaserver/plugins/automember.py:128 -msgid "" -"\n" -" Delete an automember rule:\n" -" ipa automember-del --type=hostgroup webservers\n" -" ipa automember-del --type=group devel\n" -msgstr "" - -#: ipaserver/plugins/automember.py:132 -msgid "" -"\n" -" Rebuild membership for all users:\n" -" ipa automember-rebuild --type=group\n" -msgstr "" - -#: ipaserver/plugins/automember.py:135 -msgid "" -"\n" -" Rebuild membership for all hosts:\n" -" ipa automember-rebuild --type=hostgroup\n" -msgstr "" - -#: ipaserver/plugins/automember.py:138 -msgid "" -"\n" -" Rebuild membership for specified users:\n" -" ipa automember-rebuild --users=tuser1 --users=tuser2\n" -msgstr "" - -#: ipaserver/plugins/automember.py:141 -msgid "" -"\n" -" Rebuild membership for specified hosts:\n" -" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." -"com\n" -msgstr "" - -#: ipaserver/plugins/automember.py:244 -msgid "Auto Membership Rule" -msgstr "" - -#: ipaserver/plugins/automember.py:275 -#, python-format -msgid "%(otype)s \"%(oname)s\" not found" -msgstr "" - -#: ipaserver/plugins/automember.py:301 -#, python-format -msgid "%s is not a valid attribute." -msgstr "" - -#: ipaserver/plugins/automember.py:314 -msgid "" -"\n" -" Add an automember rule.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:318 -#, python-format -msgid "Added automember rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automember.py:325 -msgid "Auto Membership is not configured" -msgstr "" - -#: ipaserver/plugins/automember.py:337 -msgid "" -"\n" -" Add conditions to an automember rule.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:348 -#, python-format -msgid "Added condition(s) to \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automember.py:371 ipaserver/plugins/automember.py:455 -#, python-format -msgid "Auto member rule: %s not found!" -msgstr "" - -#: ipaserver/plugins/automember.py:413 -msgid "" -"\n" -" Override this so we can add completed and failed to the return " -"result.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:428 -msgid "" -"\n" -" Remove conditions from an automember rule.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:432 -#, python-format -msgid "Removed condition(s) from \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automember.py:496 -msgid "" -"\n" -" Override this so we can set completed and failed.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:511 -msgid "" -"\n" -" Modify an automember rule.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:515 -#, python-format -msgid "Modified automember rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automember.py:525 -msgid "" -"\n" -" Delete an automember rule.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:529 -#, python-format -msgid "Deleted automember rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automember.py:534 -msgid "" -"\n" -" Search for automember rules.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:540 ipaserver/plugins/automember.py:840 -#, python-format -msgid "%(count)d rules matched" -msgid_plural "%(count)d rules matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/automember.py:552 -msgid "" -"\n" -" Display information about an automember rule.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:576 -msgid "" -"\n" -" Set default (fallback) group for all unmatched entries.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:590 -#, python-format -msgid "Set default (fallback) group for automember \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automember.py:607 -msgid "" -"\n" -" Remove default (fallback) group for all unmatched entries.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:614 -#, python-format -msgid "Removed default (fallback) group for automember \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automember.py:625 ipaserver/plugins/automember.py:633 -#: ipaserver/plugins/automember.py:661 -msgid "No default (fallback) group set" -msgstr "" - -#: ipaserver/plugins/automember.py:644 -msgid "" -"\n" -" Display information about the default (fallback) automember groups.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:675 -msgid "Task DN" -msgstr "" - -#: ipaserver/plugins/automember.py:676 -msgid "DN of the started task" -msgstr "" - -#: ipaserver/plugins/automember.py:727 -msgid "at least one of options: type, users, hosts must be specified" -msgstr "" - -#: ipaserver/plugins/automember.py:733 -msgid "users and hosts cannot both be set" -msgstr "" - -#: ipaserver/plugins/automember.py:737 -msgid "hosts cannot be set when type is 'group'" -msgstr "" - -#: ipaserver/plugins/automember.py:741 -msgid "users cannot be set when type is 'hostgroup'" -msgstr "" - -#: ipaserver/plugins/automember.py:795 -msgid "Automember rebuild membership task started" -msgstr "" - -#: ipaserver/plugins/automember.py:799 ipaserver/plugins/internal.py:164 -msgid "Automember rebuild membership task completed" -msgstr "" - -#: ipaserver/plugins/automember.py:815 -#, python-format -msgid "Task DN = '%s'" -msgstr "" - -#: ipaserver/plugins/automember.py:818 ipaserver/plugins/internal.py:1942 -msgid "Automember" -msgstr "" - -#: ipaserver/plugins/automember.py:828 -msgid "" -"\n" -" Search for orphan automember rules. The command might need to be run as\n" -" a privileged user user to get all orphan rules.\n" -" " -msgstr "" - -#: ipaserver/plugins/automember.py:835 -msgid "Remove orphan automember rules" -msgstr "" - -#: ipaserver/plugins/cert.py:64 ipaserver/plugins/hbactest.py:39 -msgid "pyhbac is not installed." -msgstr "" - -#: ipaserver/plugins/cert.py:69 -msgid "" -"\n" -"IPA certificate operations\n" -msgstr "" - -#: ipaserver/plugins/cert.py:71 -msgid "" -"\n" -"Implements a set of commands for managing server SSL certificates.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:73 -msgid "" -"\n" -"Certificate requests exist in the form of a Certificate Signing Request " -"(CSR)\n" -"in PEM format.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:76 -msgid "" -"\n" -"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" -"subject to values configured in the server.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:79 -msgid "" -"\n" -"A certificate is stored with a service principal and a service principal\n" -"needs a host.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:82 -msgid "" -"\n" -"In order to request a certificate:\n" -msgstr "" - -#: ipaserver/plugins/cert.py:84 -msgid "" -"\n" -"* The host must exist\n" -"* The service must exist (or you use the --add option to automatically add " -"it)\n" -msgstr "" - -#: ipaserver/plugins/cert.py:87 -msgid "" -"\n" -"SEARCHING:\n" -msgstr "" - -#: ipaserver/plugins/cert.py:89 -msgid "" -"\n" -"Certificates may be searched on by certificate subject, serial number,\n" -"revocation reason, validity dates and the issued date.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:92 -msgid "" -"\n" -"When searching on dates the _from date does a >= search and the _to date\n" -"does a <= search. When combined these are done as an AND.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:95 -msgid "" -"\n" -"Dates are treated as GMT to match the dates in the certificates.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:97 -msgid "" -"\n" -"The date format is YYYY-mm-dd.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:101 -msgid "" -"\n" -" Request a new certificate and add the principal:\n" -" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" -msgstr "" - -#: ipaserver/plugins/cert.py:104 -msgid "" -"\n" -" Retrieve an existing certificate:\n" -" ipa cert-show 1032\n" -msgstr "" - -#: ipaserver/plugins/cert.py:107 -msgid "" -"\n" -" Revoke a certificate (see RFC 5280 for reason details):\n" -" ipa cert-revoke --revocation-reason=6 1032\n" -msgstr "" - -#: ipaserver/plugins/cert.py:110 -msgid "" -"\n" -" Remove a certificate from revocation hold status:\n" -" ipa cert-remove-hold 1032\n" -msgstr "" - -#: ipaserver/plugins/cert.py:113 -msgid "" -"\n" -" Check the status of a signing request:\n" -" ipa cert-status 10\n" -msgstr "" - -#: ipaserver/plugins/cert.py:116 -msgid "" -"\n" -" Search for certificates by hostname:\n" -" ipa cert-find --subject=ipaserver.example.com\n" -msgstr "" - -#: ipaserver/plugins/cert.py:119 -msgid "" -"\n" -" Search for revoked certificates by reason:\n" -" ipa cert-find --revocation-reason=5\n" -msgstr "" - -#: ipaserver/plugins/cert.py:122 -msgid "" -"\n" -" Search for certificates based on issuance date\n" -" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" -msgstr "" - -#: ipaserver/plugins/cert.py:125 -msgid "" -"\n" -" Search for certificates owned by a specific user:\n" -" ipa cert-find --user=user\n" -msgstr "" - -#: ipaserver/plugins/cert.py:128 -msgid "" -"\n" -" Examine a certificate:\n" -" ipa cert-find --file=cert.pem --all\n" -msgstr "" - -#: ipaserver/plugins/cert.py:131 -msgid "" -"\n" -" Verify that a certificate is owned by a specific user:\n" -" ipa cert-find --file=cert.pem --user=user\n" -msgstr "" - -#: ipaserver/plugins/cert.py:134 -msgid "" -"\n" -"IPA currently immediately issues (or declines) all certificate requests so\n" -"the status of a request is not normally useful. This is for future use\n" -"or the case where a CA does not immediately issue a certificate.\n" -msgstr "" - -#: ipaserver/plugins/cert.py:138 -msgid "" -"\n" -"The following revocation reasons are supported:\n" -"\n" -msgstr "" - -#: ipaserver/plugins/cert.py:141 -msgid " * 0 - unspecified\n" -msgstr "" - -#: ipaserver/plugins/cert.py:142 -msgid " * 1 - keyCompromise\n" -msgstr "" - -#: ipaserver/plugins/cert.py:143 -msgid " * 2 - cACompromise\n" -msgstr "" - -#: ipaserver/plugins/cert.py:144 -msgid " * 3 - affiliationChanged\n" -msgstr "" - -#: ipaserver/plugins/cert.py:145 -msgid " * 4 - superseded\n" -msgstr "" - -#: ipaserver/plugins/cert.py:146 -msgid " * 5 - cessationOfOperation\n" -msgstr "" - -#: ipaserver/plugins/cert.py:147 -msgid " * 6 - certificateHold\n" -msgstr "" - -#: ipaserver/plugins/cert.py:148 -msgid " * 8 - removeFromCRL\n" -msgstr "" - -#: ipaserver/plugins/cert.py:149 -msgid " * 9 - privilegeWithdrawn\n" -msgstr "" - -#: ipaserver/plugins/cert.py:150 -msgid " * 10 - aACompromise\n" -msgstr "" - -#: ipaserver/plugins/cert.py:151 -msgid "" -"\n" -"Note that reason code 7 is not used. See RFC 5280 for more details:\n" -msgstr "" - -#: ipaserver/plugins/cert.py:153 -msgid "" -"\n" -"http://www.ietf.org/rfc/rfc5280.txt\n" -"\n" -msgstr "" - -#: ipaserver/plugins/cert.py:283 ipaserver/plugins/certprofile.py:86 -msgid "CA is not configured" -msgstr "" - -#: ipaserver/plugins/cert.py:289 -#, python-format -msgid "" -"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " -"'%(profile_id)s' for certificate issuance." -msgstr "" - -#: ipaserver/plugins/cert.py:309 -msgid "enabledService/configuredService not in ipaConfigString kdc entry" -msgstr "" - -#: ipaserver/plugins/cert.py:313 -#, python-format -msgid "Host '%(hostname)s' is not an active KDC" -msgstr "" - -#: ipaserver/plugins/cert.py:347 -msgid "Issuing CA" -msgstr "" - -#: ipaserver/plugins/cert.py:348 -msgid "Name of issuing CA" -msgstr "" - -#: ipaserver/plugins/cert.py:354 ipaserver/plugins/ca.py:113 -msgid "Base-64 encoded certificate." -msgstr "" - -#: ipaserver/plugins/cert.py:359 ipaserver/plugins/ca.py:118 -msgid "Certificate chain" -msgstr "" - -#: ipaserver/plugins/cert.py:360 ipaserver/plugins/ca.py:119 -msgid "X.509 certificate chain" -msgstr "" - -#: ipaserver/plugins/cert.py:365 ipaserver/plugins/cert.py:1502 -#: ipaserver/plugins/host.py:517 ipaserver/plugins/service.py:524 -#: ipaserver/plugins/internal.py:653 ipaserver/plugins/internal.py:729 -#: ipaserver/plugins/baseuser.py:838 -msgid "Subject" -msgstr "" - -#: ipaserver/plugins/cert.py:370 -msgid "Subject email address" -msgstr "" - -#: ipaserver/plugins/cert.py:375 -msgid "Subject DNS name" -msgstr "" - -#: ipaserver/plugins/cert.py:380 -msgid "Subject X.400 address" -msgstr "" - -#: ipaserver/plugins/cert.py:385 -msgid "Subject directory name" -msgstr "" - -#: ipaserver/plugins/cert.py:390 -msgid "Subject EDI Party name" -msgstr "" - -#: ipaserver/plugins/cert.py:395 -msgid "Subject URI" -msgstr "" - -#: ipaserver/plugins/cert.py:400 -msgid "Subject IP Address" -msgstr "" - -#: ipaserver/plugins/cert.py:405 -msgid "Subject OID" -msgstr "" - -#: ipaserver/plugins/cert.py:410 -msgid "Subject UPN" -msgstr "" - -#: ipaserver/plugins/cert.py:415 -msgid "Subject Kerberos principal name" -msgstr "" - -#: ipaserver/plugins/cert.py:420 -msgid "Subject Other Name" -msgstr "" - -#: ipaserver/plugins/cert.py:425 ipaserver/plugins/host.py:529 -#: ipaserver/plugins/service.py:536 ipaserver/plugins/internal.py:726 -#: ipaserver/plugins/baseuser.py:831 +#: ipaserver/plugins/baseuser.py:831 ipaserver/plugins/host.py:529 +#: ipaserver/plugins/internal.py:726 ipaserver/plugins/service.py:536 +#: ipaserver/plugins/cert.py:425 msgid "Issuer" msgstr "" -#: ipaserver/plugins/cert.py:426 ipaserver/plugins/ca.py:106 -msgid "Issuer DN" +#: ipaserver/plugins/baseuser.py:832 +msgid "Issuer of the certificate" msgstr "" -#: ipaserver/plugins/cert.py:431 ipaserver/plugins/host.py:533 -#: ipaserver/plugins/service.py:540 -msgid "Not Before" +#: ipaserver/plugins/baseuser.py:838 ipaserver/plugins/host.py:517 +#: ipaserver/plugins/internal.py:653 ipaserver/plugins/internal.py:729 +#: ipaserver/plugins/service.py:524 ipaserver/plugins/cert.py:365 +#: ipaserver/plugins/cert.py:1502 +msgid "Subject" msgstr "" -#: ipaserver/plugins/cert.py:436 ipaserver/plugins/host.py:537 -#: ipaserver/plugins/service.py:544 -msgid "Not After" +#: ipaserver/plugins/baseuser.py:839 +msgid "Subject of the certificate" msgstr "" -#: ipaserver/plugins/cert.py:441 ipaserver/plugins/host.py:541 -#: ipaserver/plugins/service.py:548 -msgid "Fingerprint (SHA1)" +#: ipaserver/plugins/baseuser.py:884 +msgid "cannot have an empty subject" msgstr "" -#: ipaserver/plugins/cert.py:446 ipaserver/plugins/host.py:545 -#: ipaserver/plugins/service.py:552 -msgid "Fingerprint (SHA256)" +#: ipaserver/plugins/baseuser.py:924 +msgid "cannot specify both subject/issuer and certificate" msgstr "" -#: ipaserver/plugins/cert.py:458 -msgid "Serial number (hex)" +#: ipaserver/plugins/baseuser.py:928 +msgid "cannot specify both subject/issuer and ipacertmapdata" msgstr "" -#: ipaserver/plugins/cert.py:584 -msgid "Request status" +#: ipaserver/plugins/baseuser.py:952 ipaserver/plugins/user.py:1310 +msgid "Add one or more certificate mappings to the user entry." msgstr "" -#: ipaserver/plugins/cert.py:599 ipaserver/plugins/ca.py:237 -msgid "Include certificate chain in output" -msgstr "" - -#: ipaserver/plugins/cert.py:630 -msgid "" -"automatically add the principal if it doesn't exist (service principals only)" -msgstr "" - -#: ipaserver/plugins/cert.py:679 +#: ipaserver/plugins/baseuser.py:953 #, python-format -msgid "krbtgt certs can use only the %s profile" +msgid "Added certificate mappings to user \"%(value)s\"" msgstr "" -#: ipaserver/plugins/cert.py:731 -msgid "No Common Name was found in subject of request." +#: ipaserver/plugins/baseuser.py:971 ipaserver/plugins/user.py:1315 +msgid "Remove one or more certificate mappings from the user entry." msgstr "" -#: ipaserver/plugins/cert.py:739 +#: ipaserver/plugins/baseuser.py:972 #, python-format -msgid "" -"hostname in subject of request '%(cn)s' does not match name or aliases of " -"principal '%(principal)s'" -msgstr "" - -#: ipaserver/plugins/cert.py:745 -#, python-format -msgid "" -"hostname in subject of request '%(cn)s' does not match principal hostname " -"'%(hostname)s'" -msgstr "" - -#: ipaserver/plugins/cert.py:754 -msgid "DN commonName does not match user's login" -msgstr "" - -#: ipaserver/plugins/cert.py:768 -msgid "DN emailAddress does not match any of user's email addresses" -msgstr "" - -#: ipaserver/plugins/cert.py:777 -#, python-format -msgid "" -"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " -"'%s'." -msgstr "" - -#: ipaserver/plugins/cert.py:798 ipaserver/plugins/cert.py:916 -#, python-format -msgid "subject alt name type %s is forbidden for user principals" -msgstr "" - -#: ipaserver/plugins/cert.py:843 -#, python-format -msgid "" -"The service principal for subject alt name %s in certificate request does " -"not exist" -msgstr "" - -#: ipaserver/plugins/cert.py:874 -#, python-format -msgid "" -"Insufficient privilege to create a certificate with subject alt name '%s'." -msgstr "" - -#: ipaserver/plugins/cert.py:892 -#, python-format -msgid "Principal '%s' in subject alt name does not match requested principal" -msgstr "" - -#: ipaserver/plugins/cert.py:901 -msgid "RFC822Name does not match any of user's email addresses" -msgstr "" - -#: ipaserver/plugins/cert.py:908 -#, python-format -msgid "subject alt name type %s is forbidden for non-user principals" -msgstr "" - -#: ipaserver/plugins/cert.py:925 -#, python-format -msgid "Subject alt name type %s is forbidden" -msgstr "" - -#: ipaserver/plugins/cert.py:943 -#, python-format -msgid "CA '%s' is disabled" -msgstr "" - -#: ipaserver/plugins/cert.py:1030 -msgid "'add' option" -msgstr "" - -#: ipaserver/plugins/cert.py:1034 -msgid "The principal for this request doesn't exist." -msgstr "" - -#: ipaserver/plugins/cert.py:1150 -#, python-format -msgid "IP address in subjectAltName (%s) unreachable from DNS names" -msgstr "" - -#: ipaserver/plugins/cert.py:1167 -#, python-format -msgid "IP address in subjectAltName (%s) does not have PTR record" -msgstr "" - -#: ipaserver/plugins/cert.py:1179 -#, python-format -msgid "PTR record for SAN IP (%s) does not match A/AAAA records" -msgstr "" - -#: ipaserver/plugins/cert.py:1273 ipaserver/plugins/internal.py:700 -#: ipaserver/plugins/internal.py:1030 ipaserver/plugins/internal.py:1333 -#: ipaserver/plugins/internal.py:1936 -msgid "Status" -msgstr "" - -#: ipaserver/plugins/cert.py:1278 -msgid "Revoked" -msgstr "" - -#: ipaserver/plugins/cert.py:1283 ipaserver/plugins/host.py:549 -#: ipaserver/plugins/service.py:556 ipaserver/plugins/internal.py:650 -#: ipaserver/plugins/internal.py:691 -msgid "Revocation reason" -msgstr "" - -#: ipaserver/plugins/cert.py:1284 -msgid "" -"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " -"revocation reason details. " -msgstr "" - -#: ipaserver/plugins/cert.py:1306 -#, python-format -msgid "Owner %s" -msgstr "" - -#: ipaserver/plugins/cert.py:1393 -#, python-format -msgid "" -"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" -msgstr "" - -#: ipaserver/plugins/cert.py:1462 -msgid "7 is not a valid revocation reason" -msgstr "" - -#: ipaserver/plugins/cert.py:1564 -msgid "Status of the certificate" -msgstr "" - -#: ipaserver/plugins/cert.py:1570 -msgid "Results should contain primary key attribute only (\"certificate\")" -msgstr "" - -#: ipaserver/plugins/cert.py:1586 -#, python-format -msgid "%(count)d certificate matched" -msgid_plural "%(count)d certificates matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/cert.py:1608 -#, python-format -msgid "Search for certificates with these owner %s." -msgstr "" - -#: ipaserver/plugins/cert.py:1619 -#, python-format -msgid "Search for certificates without these owner %s." -msgstr "" - -#: ipaserver/plugins/otp.py:7 -msgid "One time password commands" -msgstr "" - -#: ipaserver/plugins/otpconfig.py:57 -msgid "OTP configuration options" -msgstr "" - -#: ipaserver/plugins/otpconfig.py:80 ipaserver/plugins/otpconfig.py:81 -msgid "OTP Configuration" -msgstr "" - -#: ipaserver/plugins/pkinit.py:13 -msgid "" -"\n" -"Kerberos PKINIT feature status reporting tools.\n" -"\n" -"Report IPA masters on which Kerberos PKINIT is enabled or disabled\n" -"\n" -"EXAMPLES:\n" -" List PKINIT status on all masters:\n" -" ipa pkinit-status\n" -"\n" -" Check PKINIT status on `ipa.example.com`:\n" -" ipa pkinit-status --server ipa.example.com\n" -"\n" -" List all IPA masters with disabled PKINIT:\n" -" ipa pkinit-status --status='disabled'\n" -"\n" -"For more info about PKINIT support see:\n" -"\n" -"https://www.freeipa.org/page/V4/Kerberos_PKINIT\n" -msgstr "" - -#: ipaserver/plugins/pkinit.py:39 -msgid "pkinit" -msgstr "" - -#: ipaserver/plugins/pkinit.py:41 ipaserver/plugins/internal.py:192 -msgid "PKINIT" -msgstr "" - -#: ipaserver/plugins/pkinit.py:53 -msgid "PKINIT status" -msgstr "" - -#: ipaserver/plugins/pkinit.py:54 -msgid "Whether PKINIT is enabled or disabled" -msgstr "" - -#: ipaserver/plugins/pkinit.py:63 -msgid "Report PKINIT status on the IPA masters" -msgstr "" - -#: ipaserver/plugins/pkinit.py:65 -#, python-format -msgid "%(count)s server matched" -msgid_plural "%(count)s servers matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/radiusproxy.py:35 -msgid "" -"\n" -"RADIUS Proxy Servers\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:37 -msgid "" -"\n" -"Manage RADIUS Proxy Servers.\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:39 -msgid "" -"\n" -"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" -"authentications. This permits a great deal of flexibility when\n" -"integrating with third-party authentication services.\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:45 -msgid "" -"\n" -" Add a new server:\n" -" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:48 -msgid "" -"\n" -" Find all servers whose entries include the string \"example.com\":\n" -" ipa radiusproxy-find example.com\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:51 -msgid "" -"\n" -" Examine the configuration:\n" -" ipa radiusproxy-show MyRADIUS\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:54 -msgid "" -"\n" -" Change the secret:\n" -" ipa radiusproxy-mod MyRADIUS --secret\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:57 -msgid "" -"\n" -" Delete a configuration:\n" -" ipa radiusproxy-del MyRADIUS\n" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:68 -msgid "invalid attribute name" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:80 -msgid "invalid port number" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:98 -msgid "RADIUS proxy server" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:99 -msgid "RADIUS proxy servers" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:106 -msgid "RADIUS Servers" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:107 -msgid "RADIUS Server" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:172 -#, python-format -msgid "Added RADIUS proxy server \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:177 -#, python-format -msgid "Deleted RADIUS proxy server \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:182 -#, python-format -msgid "Modified RADIUS proxy server \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/radiusproxy.py:188 -#, python-format -msgid "%(count)d RADIUS proxy server matched" -msgid_plural "%(count)d RADIUS proxy servers matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/aci.py:165 -msgid "A list of ACI values" -msgstr "" - -#: ipaserver/plugins/aci.py:229 -msgid "type, filter, subtree and targetgroup are mutually exclusive" -msgstr "" - -#: ipaserver/plugins/aci.py:232 -msgid "ACI prefix is required" -msgstr "" - -#: ipaserver/plugins/aci.py:235 -msgid "" -"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " -"required" -msgstr "" - -#: ipaserver/plugins/aci.py:238 -msgid "filter and memberof are mutually exclusive" -msgstr "" - -#: ipaserver/plugins/aci.py:244 -msgid "group, permission and self are mutually exclusive" -msgstr "" - -#: ipaserver/plugins/aci.py:246 -msgid "One of group, permission or self is required" -msgstr "" - -#: ipaserver/plugins/aci.py:269 -#, python-format -msgid "Group '%s' does not exist" -msgstr "" - -#: ipaserver/plugins/aci.py:295 -msgid "empty filter" -msgstr "" - -#: ipaserver/plugins/aci.py:316 -#, python-format -msgid "Syntax Error: %(error)s" -msgstr "" - -#: ipaserver/plugins/aci.py:361 -#, python-format -msgid "invalid DN (%s)" -msgstr "" - -#: ipaserver/plugins/aci.py:408 -#, python-format -msgid "ACI with name \"%s\" not found" -msgstr "" - -#: ipaserver/plugins/aci.py:437 -msgid "ACI object." -msgstr "" - -#: ipaserver/plugins/aci.py:440 -msgid "ACIs" -msgstr "" - -#: ipaserver/plugins/aci.py:524 -#, python-format -msgid "Created ACI \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/aci.py:577 -#, python-format -msgid "Deleted ACI \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/aci.py:620 -#, python-format -msgid "Modified ACI \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/aci.py:694 -#, python-format -msgid "%(count)d ACI matched" -msgid_plural "%(count)d ACIs matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/aci.py:929 -#, python-format -msgid "Renamed ACI to \"%(value)s\"" +msgid "Removed certificate mappings from user \"%(value)s\"" msgstr "" #: ipaserver/plugins/ca.py:20 @@ -16239,7 +14089,7 @@ msgid "Certificate Authorities" msgstr "" #: ipaserver/plugins/ca.py:84 ipaserver/plugins/schema.py:48 -#: ipaserver/plugins/trust.py:1418 +#: ipaserver/plugins/trust.py:1419 msgid "Name" msgstr "" @@ -16267,10 +14117,26 @@ msgstr "" msgid "Subject Distinguished Name" msgstr "" +#: ipaserver/plugins/ca.py:106 ipaserver/plugins/cert.py:426 +msgid "Issuer DN" +msgstr "" + #: ipaserver/plugins/ca.py:107 msgid "Issuer Distinguished Name" msgstr "" +#: ipaserver/plugins/ca.py:113 ipaserver/plugins/cert.py:354 +msgid "Base-64 encoded certificate." +msgstr "" + +#: ipaserver/plugins/ca.py:118 ipaserver/plugins/cert.py:359 +msgid "Certificate chain" +msgstr "" + +#: ipaserver/plugins/ca.py:119 ipaserver/plugins/cert.py:360 +msgid "X.509 certificate chain" +msgstr "" + #: ipaserver/plugins/ca.py:218 msgid "Search for CAs." msgstr "" @@ -16282,6 +14148,10 @@ msgid_plural "%(count)d CAs matched" msgstr[0] "" msgstr[1] "" +#: ipaserver/plugins/ca.py:237 ipaserver/plugins/cert.py:599 +msgid "Include certificate chain in output" +msgstr "" + #: ipaserver/plugins/ca.py:243 msgid "Display the properties of a CA." msgstr "" @@ -16372,6 +14242,541 @@ msgstr "" msgid "Enabled CA \"%(value)s\"" msgstr "" +#: ipaserver/plugins/caacl.py:21 +msgid "" +"\n" +"Manage CA ACL rules.\n" +"\n" +"This plugin is used to define rules governing which CAs and profiles\n" +"may be used to issue certificates to particular principals or groups\n" +"of principals.\n" +"\n" +"SUBJECT PRINCIPAL SCOPE:\n" +"\n" +"For a certificate request to be allowed, the principal(s) that are\n" +"the subject of a certificate request (not necessarily the principal\n" +"actually requesting the certificate) must be included in the scope\n" +"of a CA ACL that also includes the target CA and profile.\n" +"\n" +"Users can be included by name, group or the \"all users\" category.\n" +"Hosts can be included by name, hostgroup or the \"all hosts\"\n" +"category. Services can be included by service name or the \"all\n" +"services\" category. CA ACLs may be associated with a single type of\n" +"principal, or multiple types.\n" +"\n" +"CERTIFICATE AUTHORITY SCOPE:\n" +"\n" +"A CA ACL can be associated with one or more CAs by name, or by the\n" +"\"all CAs\" category. For compatibility reasons, a CA ACL with no CA\n" +"association implies an association with the 'ipa' CA (and only this\n" +"CA).\n" +"\n" +"PROFILE SCOPE:\n" +"\n" +"A CA ACL can be associated with one or more profiles by Profile ID.\n" +"The Profile ID is a string without spaces or punctuation starting\n" +"with a letter and followed by a sequence of letters, digits or\n" +"underscore (\"_\").\n" +"\n" +"EXAMPLES:\n" +"\n" +" Create a CA ACL \"test\" that grants all users access to the\n" +" \"UserCert\" profile on all CAs:\n" +" ipa caacl-add test --usercat=all --cacat=all\n" +" ipa caacl-add-profile test --certprofiles UserCert\n" +"\n" +" Display the properties of a named CA ACL:\n" +" ipa caacl-show test\n" +"\n" +" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile on \"DNP3-CA" +"\":\n" +" ipa caacl-add alice_dnp3\n" +" ipa caacl-add-ca alice_dnp3 --cas DNP3-CA\n" +" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" +" ipa caacl-add-user alice_dnp3 --user=alice\n" +"\n" +" Disable a CA ACL:\n" +" ipa caacl-disable test\n" +"\n" +" Remove a CA ACL:\n" +" ipa caacl-del test\n" +msgstr "" + +#: ipaserver/plugins/caacl.py:87 ipaserver/plugins/caacl.py:165 +#: ipaserver/plugins/caacl.py:263 +msgid "CA ACL" +msgstr "" + +#: ipaserver/plugins/caacl.py:88 ipaserver/plugins/caacl.py:164 +msgid "CA ACLs" +msgstr "" + +#: ipaserver/plugins/caacl.py:183 +msgid "CA category" +msgstr "" + +#: ipaserver/plugins/caacl.py:184 +msgid "CA category the ACL applies to" +msgstr "" + +#: ipaserver/plugins/caacl.py:212 +msgid "CAs" +msgstr "" + +#: ipaserver/plugins/caacl.py:246 +#, python-format +msgid "Added CA ACL \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/caacl.py:258 +#, python-format +msgid "Deleted CA ACL \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/caacl.py:265 +msgid "default CA ACL can be only disabled" +msgstr "" + +#: ipaserver/plugins/caacl.py:273 +#, python-format +msgid "Modified CA ACL \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/caacl.py:285 +msgid "CA category cannot be set to 'all' while there are allowed CAs" +msgstr "" + +#: ipaserver/plugins/caacl.py:290 +msgid "" +"profile category cannot be set to 'all' while there are allowed profiles" +msgstr "" + +#: ipaserver/plugins/caacl.py:294 ipaserver/plugins/hbacrule.py:345 +#: ipaserver/plugins/netgroup.py:321 +msgid "user category cannot be set to 'all' while there are allowed users" +msgstr "" + +#: ipaserver/plugins/caacl.py:298 ipaserver/plugins/hbacrule.py:350 +#: ipaserver/plugins/netgroup.py:326 +msgid "host category cannot be set to 'all' while there are allowed hosts" +msgstr "" + +#: ipaserver/plugins/caacl.py:302 ipaserver/plugins/hbacrule.py:356 +msgid "" +"service category cannot be set to 'all' while there are allowed services" +msgstr "" + +#: ipaserver/plugins/caacl.py:312 +#, python-format +msgid "%(count)d CA ACL matched" +msgid_plural "%(count)d CA ACLs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/caacl.py:325 +#, python-format +msgid "Enabled CA ACL \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/caacl.py:354 +#, python-format +msgid "Disabled CA ACL \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/caacl.py:385 +#, python-format +msgid "%i user or group added." +msgstr "" + +#: ipaserver/plugins/caacl.py:386 +#, python-format +msgid "%i users or groups added." +msgstr "" + +#: ipaserver/plugins/caacl.py:397 ipaserver/plugins/hbacrule.py:518 +#: ipaserver/plugins/selinuxusermap.py:572 ipaserver/plugins/sudorule.py:607 +msgid "users cannot be added when user category='all'" +msgstr "" + +#: ipaserver/plugins/caacl.py:407 +#, python-format +msgid "%i user or group removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:408 +#, python-format +msgid "%i users or groups removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:417 +#, python-format +msgid "%i host or hostgroup added." +msgstr "" + +#: ipaserver/plugins/caacl.py:418 +#, python-format +msgid "%i hosts or hostgroups added." +msgstr "" + +#: ipaserver/plugins/caacl.py:429 ipaserver/plugins/hbacrule.py:549 +#: ipaserver/plugins/selinuxusermap.py:605 ipaserver/plugins/sudorule.py:710 +msgid "hosts cannot be added when host category='all'" +msgstr "" + +#: ipaserver/plugins/caacl.py:439 +#, python-format +msgid "%i host or hostgroup removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:440 +#, python-format +msgid "%i hosts or hostgroups removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:448 +#, python-format +msgid "%i service added." +msgstr "" + +#: ipaserver/plugins/caacl.py:448 +#, python-format +msgid "%i services added." +msgstr "" + +#: ipaserver/plugins/caacl.py:459 ipaserver/plugins/hbacrule.py:606 +msgid "services cannot be added when service category='all'" +msgstr "" + +#: ipaserver/plugins/caacl.py:468 +#, python-format +msgid "%i service removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:468 +#, python-format +msgid "%i services removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:488 +#, python-format +msgid "%i profile added." +msgstr "" + +#: ipaserver/plugins/caacl.py:488 +#, python-format +msgid "%i profiles added." +msgstr "" + +#: ipaserver/plugins/caacl.py:499 +msgid "profiles cannot be added when profile category='all'" +msgstr "" + +#: ipaserver/plugins/caacl.py:510 +#, python-format +msgid "%i profile removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:510 +#, python-format +msgid "%i profiles removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:515 +msgid "Add CAs to a CA ACL." +msgstr "" + +#: ipaserver/plugins/caacl.py:520 +#, python-format +msgid "%i CA added." +msgstr "" + +#: ipaserver/plugins/caacl.py:520 +#, python-format +msgid "%i CAs added." +msgstr "" + +#: ipaserver/plugins/caacl.py:531 +msgid "CAs cannot be added when CA category='all'" +msgstr "" + +#: ipaserver/plugins/caacl.py:537 +msgid "Remove CAs from a CA ACL." +msgstr "" + +#: ipaserver/plugins/caacl.py:542 +#, python-format +msgid "%i CA removed." +msgstr "" + +#: ipaserver/plugins/caacl.py:542 +#, python-format +msgid "%i CAs removed." +msgstr "" + +#: ipaserver/plugins/certmap.py:50 +msgid "" +"\n" +"Certificate Identity Mapping\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:52 +msgid "" +"\n" +"Manage Certificate Identity Mapping configuration and rules.\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:54 +msgid "" +"\n" +"IPA supports the use of certificates for authentication. Certificates can\n" +"either be stored in the user entry (full certificate in the usercertificate\n" +"attribute), or simply linked to the user entry through a mapping.\n" +"This code enables the management of the rules allowing to link a\n" +"certificate to a user entry.\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:62 +msgid "" +"\n" +" Display the Certificate Identity Mapping global configuration:\n" +" ipa certmapconfig-show\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:65 +msgid "" +"\n" +" Modify Certificate Identity Mapping global configuration:\n" +" ipa certmapconfig-mod --promptusername=TRUE\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:68 +msgid "" +"\n" +" Create a new Certificate Identity Mapping Rule:\n" +" ipa certmaprule-add rule1 --desc=\"Link certificate with subject and " +"issuer\"\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:71 +msgid "" +"\n" +" Modify a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-mod rule1 --maprule=\"\"\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:74 +msgid "" +"\n" +" Disable a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-disable rule1\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:77 +msgid "" +"\n" +" Enable a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-enable rule1\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:80 +msgid "" +"\n" +" Display information about a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-show rule1\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:83 +msgid "" +"\n" +" Find all Certificate Identity Mapping Rules with the specified domain:\n" +" ipa certmaprule-find --domain example.com\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:86 +msgid "" +"\n" +" Delete a Certificate Identity Mapping Rule:\n" +" ipa certmaprule-del rule1\n" +msgstr "" + +#: ipaserver/plugins/certmap.py:141 ipaserver/plugins/certmap.py:148 +#: ipaserver/plugins/certmap.py:175 ipaserver/plugins/trust.py:849 +msgid "domain" +msgstr "" + +#: ipaserver/plugins/certmap.py:142 +#, python-format +msgid "" +"The domain(s) \"%s\" cannot be used to apply altSecurityIdentities check." +msgstr "" + +#: ipaserver/plugins/certmap.py:149 +msgid "" +"The mapping rule with altSecurityIdentities should be applied to a trusted " +"Active Directory domain but no domain was associated with the rule." +msgstr "" + +#: ipaserver/plugins/certmap.py:176 +#, python-format +msgid "The domain %s is neither IPA domain nor a trusteddomain." +msgstr "" + +#: ipaserver/plugins/certmap.py:186 +msgid "Certificate Identity Mapping configuration options" +msgstr "" + +#: ipaserver/plugins/certmap.py:191 ipaserver/plugins/certmap.py:192 +msgid "Certificate Identity Mapping Global Configuration" +msgstr "" + +#: ipaserver/plugins/certmap.py:198 +msgid "Prompt for the username" +msgstr "" + +#: ipaserver/plugins/certmap.py:199 +msgid "" +"Prompt for the username when multiple identities are mapped to a certificate" +msgstr "" + +#: ipaserver/plugins/certmap.py:229 +msgid "Modify Certificate Identity Mapping configuration." +msgstr "" + +#: ipaserver/plugins/certmap.py:234 +msgid "Show the current Certificate Identity Mapping configuration." +msgstr "" + +#: ipaserver/plugins/certmap.py:243 ipaserver/plugins/certmap.py:247 +msgid "Certificate Identity Mapping Rules" +msgstr "" + +#: ipaserver/plugins/certmap.py:244 ipaserver/plugins/certmap.py:246 +msgid "Certificate Identity Mapping Rule" +msgstr "" + +#: ipaserver/plugins/certmap.py:274 +msgid "Certificate Identity Mapping Rule name" +msgstr "" + +#: ipaserver/plugins/certmap.py:280 +msgid "Certificate Identity Mapping Rule description" +msgstr "" + +#: ipaserver/plugins/certmap.py:285 +msgid "Mapping rule" +msgstr "" + +#: ipaserver/plugins/certmap.py:286 +msgid "Rule used to map the certificate with a user entry" +msgstr "" + +#: ipaserver/plugins/certmap.py:291 +msgid "Matching rule" +msgstr "" + +#: ipaserver/plugins/certmap.py:292 +msgid "Rule used to check if a certificate can be used for authentication" +msgstr "" + +#: ipaserver/plugins/certmap.py:299 +msgid "Domain where the user entry will be searched" +msgstr "" + +#: ipaserver/plugins/certmap.py:305 +msgid "Priority of the rule (higher number means lower priority" +msgstr "" + +#: ipaserver/plugins/certmap.py:356 +msgid "Create a new Certificate Identity Mapping Rule." +msgstr "" + +#: ipaserver/plugins/certmap.py:358 +#, python-format +msgid "Added Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/certmap.py:369 +msgid "Modify a Certificate Identity Mapping Rule." +msgstr "" + +#: ipaserver/plugins/certmap.py:371 +#, python-format +msgid "Modified Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/certmap.py:392 +msgid "Search for Certificate Identity Mapping Rules." +msgstr "" + +#: ipaserver/plugins/certmap.py:395 +#, python-format +msgid "%(count)d Certificate Identity Mapping Rule matched" +msgid_plural "%(count)d Certificate Identity Mapping Rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/certmap.py:402 +msgid "Display information about a Certificate Identity Mapping Rule." +msgstr "" + +#: ipaserver/plugins/certmap.py:408 +msgid "Delete a Certificate Identity Mapping Rule." +msgstr "" + +#: ipaserver/plugins/certmap.py:410 +#, python-format +msgid "Deleted Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/certmap.py:415 +msgid "Enable a Certificate Identity Mapping Rule." +msgstr "" + +#: ipaserver/plugins/certmap.py:417 +#, python-format +msgid "Enabled Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/certmap.py:444 +msgid "Disable a Certificate Identity Mapping Rule." +msgstr "" + +#: ipaserver/plugins/certmap.py:446 +#, python-format +msgid "Disabled Certificate Identity Mapping Rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/certmap.py:500 +msgid "Failed to connect to sssd over SystemBus. See details in the error_log" +msgstr "" + +#: ipaserver/plugins/certmap.py:554 +msgid "Failed to find users over SystemBus. See details in the error_log" +msgstr "" + +#: ipaserver/plugins/certmap.py:571 +msgid "User logins" +msgstr "" + +#: ipaserver/plugins/certmap.py:579 +msgid "" +"\n" +" Search for users matching the provided certificate.\n" +"\n" +" This command relies on SSSD to retrieve the list of matching users and\n" +" may return cached data. For more information on purging SSSD cache,\n" +" please refer to sss_cache documentation.\n" +" " +msgstr "" + +#: ipaserver/plugins/certmap.py:587 +#, python-format +msgid "%(count)s user matched" +msgid_plural "%(count)s users matched" +msgstr[0] "" +msgstr[1] "" + #: ipaserver/plugins/certprofile.py:21 msgid "" "\n" @@ -16431,6 +14836,10 @@ msgid "" "\n" msgstr "" +#: ipaserver/plugins/certprofile.py:86 ipaserver/plugins/cert.py:283 +msgid "CA is not configured" +msgstr "" + #: ipaserver/plugins/certprofile.py:95 msgid "invalid Profile ID" msgstr "" @@ -16492,681 +14901,192 @@ msgstr "" msgid "Insufficient privilege to modify a certificate profile." msgstr "" -#: ipaserver/plugins/dogtag.py:1251 -msgid "REST API is not logged in." +#: ipaserver/plugins/delegation.py:67 +msgid "delegation" msgstr "" -#: ipaserver/plugins/dogtag.py:1273 +#: ipaserver/plugins/delegation.py:68 +msgid "delegations" +msgstr "" + +#: ipaserver/plugins/delegation.py:69 +msgid "Delegations" +msgstr "" + +#: ipaserver/plugins/delegation.py:70 +msgid "Delegation" +msgstr "" + +#: ipaserver/plugins/delegation.py:101 ipaserver/plugins/selfservice.py:94 +#: ipaserver/plugins/aci.py:514 ipaserver/plugins/permission.py:359 +msgid "ACI" +msgstr "" + +#: ipaserver/plugins/delegation.py:132 #, python-format -msgid "Non-2xx response from CA REST API: %(status)d. %(explanation)s" +msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipaserver/plugins/dogtag.py:1299 -msgid "Unable to communicate with CMS" -msgstr "" - -#: ipaserver/plugins/dogtag.py:1490 ipaserver/plugins/dogtag.py:1576 -#: ipaserver/plugins/dogtag.py:2083 ipaserver/plugins/dogtag.py:2093 -msgid "Response from CA was not valid JSON" -msgstr "" - -#: ipaserver/plugins/permission.py:40 -msgid "" -"\n" -"Permissions\n" -msgstr "" - -#: ipaserver/plugins/permission.py:42 -msgid "" -"\n" -"A permission enables fine-grained delegation of rights. A permission is\n" -"a human-readable wrapper around a 389-ds Access Control Rule,\n" -"or instruction (ACI).\n" -"A permission grants the right to perform a specific task such as adding a\n" -"user, modifying a group, etc.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:48 -msgid "" -"\n" -"A permission may not contain other permissions.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:50 -msgid "" -"\n" -"* A permission grants access to read, write, add, delete, read, search,\n" -" or compare.\n" -"* A privilege combines similar permissions (for example all the permissions\n" -" needed to add a user).\n" -"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:56 -msgid "" -"\n" -"A permission is made up of a number of different parts:\n" -"\n" -"1. The name of the permission.\n" -"2. The target of the permission.\n" -"3. The rights granted by the permission.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:62 -msgid "" -"\n" -"Rights define what operations are allowed, and may be one or more\n" -"of the following:\n" -"1. write - write one or more attributes\n" -"2. read - read one or more attributes\n" -"3. search - search on one or more attributes\n" -"4. compare - compare one or more attributes\n" -"5. add - add a new entry to the tree\n" -"6. delete - delete an existing entry\n" -"7. all - all permissions are granted\n" -msgstr "" - -#: ipaserver/plugins/permission.py:72 -msgid "" -"\n" -"Note the distinction between attributes and entries. The permissions are\n" -"independent, so being able to add a user does not mean that the user will\n" -"be editable.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:76 -msgid "" -"\n" -"There are a number of allowed targets:\n" -"1. subtree: a DN; the permission applies to the subtree under this DN\n" -"2. target filter: an LDAP filter\n" -"3. target: DN with possible wildcards, specifies entries permission applies " -"to\n" -msgstr "" - -#: ipaserver/plugins/permission.py:81 -msgid "" -"\n" -"Additionally, there are the following convenience options.\n" -"Setting one of these options will set the corresponding attribute(s).\n" -"1. type: a type of object (user, group, etc); sets subtree and target " -"filter.\n" -"2. memberof: apply to members of a group; sets target filter\n" -"3. targetgroup: grant access to modify a specific group (such as granting\n" -" the rights to manage group membership); sets target.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:88 -msgid "" -"\n" -"Managed permissions\n" -msgstr "" - -#: ipaserver/plugins/permission.py:90 -msgid "" -"\n" -"Permissions that come with IPA by default can be so-called \"managed\"\n" -"permissions. These have a default set of attributes they apply to,\n" -"but the administrator can add/remove individual attributes to/from the set.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:94 -msgid "" -"\n" -"Deleting or renaming a managed permission, as well as changing its target,\n" -"is not allowed.\n" -msgstr "" - -#: ipaserver/plugins/permission.py:99 -msgid "" -"\n" -" Add a permission that grants the creation of users:\n" -" ipa permission-add --type=user --permissions=add \"Add Users\"\n" -msgstr "" - -#: ipaserver/plugins/permission.py:102 -msgid "" -"\n" -" Add a permission that grants the ability to manage group membership:\n" -" ipa permission-add --attrs=member --permissions=write --type=group " -"\"Manage Group Members\"\n" -msgstr "" - -#: ipaserver/plugins/permission.py:129 -msgid "must be enclosed in parentheses" -msgstr "" - -#: ipaserver/plugins/permission.py:149 +#: ipaserver/plugins/delegation.py:153 #, python-format -msgid "\"%s\" is not an object type" +msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipaserver/plugins/permission.py:151 ipaserver/plugins/permission.py:897 +#: ipaserver/plugins/delegation.py:170 #, python-format -msgid "\"%s\" is not a valid permission type" +msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipaserver/plugins/permission.py:353 +#: ipaserver/plugins/delegation.py:189 #, python-format -msgid "Deprecated; use %s" -msgstr "" - -#: ipaserver/plugins/permission.py:370 -#, python-format -msgid "Permission with unknown flag %s may not be modified or removed" -msgstr "" - -#: ipaserver/plugins/permission.py:374 -msgid "A SYSTEM permission may not be modified or removed" -msgstr "" - -#: ipaserver/plugins/permission.py:624 -#, python-format -msgid "Entry %s not found" -msgstr "" - -#: ipaserver/plugins/permission.py:716 -#, python-format -msgid "The ACI for permission %(name)s was not found in %(dn)s " -msgstr "" - -#: ipaserver/plugins/permission.py:820 -msgid "" -"cannot specify full target filter and extra target filter simultaneously" -msgstr "" - -#: ipaserver/plugins/permission.py:843 -#, python-format -msgid "option was renamed; use %s" -msgstr "" - -#: ipaserver/plugins/permission.py:847 -#, python-format -msgid "Cannot use %(old_name)s with %(new_name)s" -msgstr "" - -#: ipaserver/plugins/permission.py:861 ipaserver/plugins/permission.py:876 -#, python-format -msgid "%s: group not found" -msgstr "" - -#: ipaserver/plugins/permission.py:871 -msgid "target and targetgroup are mutually exclusive" -msgstr "" - -#: ipaserver/plugins/permission.py:892 -msgid "subtree and type are mutually exclusive" -msgstr "" - -#: ipaserver/plugins/permission.py:930 -msgid "Bad search filter" -msgstr "" - -#: ipaserver/plugins/permission.py:940 -#, python-format -msgid "Entry %s does not exist" -msgstr "" - -#: ipaserver/plugins/permission.py:949 -msgid "" -"there must be at least one target entry specifier (e.g. target, " -"targetfilter, attrs)" -msgstr "" - -#: ipaserver/plugins/permission.py:961 ipaserver/plugins/permission.py:989 -#, python-format -msgid "Added permission \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/permission.py:1014 -msgid "attrs and included attributes are mutually exclusive" -msgstr "" - -#: ipaserver/plugins/permission.py:1046 -#, python-format -msgid "Cannot store permission ACI to %s" -msgstr "" - -#: ipaserver/plugins/permission.py:1057 -#, python-format -msgid "Deleted permission \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/permission.py:1077 -msgid "cannot delete managed permissions" -msgstr "" - -#: ipaserver/plugins/permission.py:1083 -#, python-format -msgid "ACI of permission %s was not found" -msgstr "" - -#: ipaserver/plugins/permission.py:1092 -#, python-format -msgid "Modified permission \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/permission.py:1125 -msgid "cannot rename managed permissions" -msgstr "" - -#: ipaserver/plugins/permission.py:1132 ipaserver/plugins/permission.py:1136 -msgid "not modifiable on managed permissions" -msgstr "" - -#: ipaserver/plugins/permission.py:1143 -msgid "only available on managed permissions" -msgstr "" - -#: ipaserver/plugins/permission.py:1150 ipaserver/plugins/permission.py:1276 -msgid "attrs and included/excluded attributes are mutually exclusive" -msgstr "" - -#: ipaserver/plugins/permission.py:1161 -msgid "cannot set bindtype for a permission that is assigned to a privilege" -msgstr "" - -#: ipaserver/plugins/permission.py:1265 -#, python-format -msgid "%(count)d permission matched" -msgid_plural "%(count)d permissions matched" +msgid "%(count)d delegation matched" +msgid_plural "%(count)d delegations matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/pwpolicy.py:92 -msgid "Class of Service object used for linking policies with groups" +#: ipaserver/plugins/dnsserver.py:35 +msgid "" +"\n" +"DNS server configuration\n" msgstr "" -#: ipaserver/plugins/pwpolicy.py:143 +#: ipaserver/plugins/dnsserver.py:37 +msgid "" +"\n" +"Manipulate DNS server configuration\n" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:41 +msgid "" +"\n" +" Show configuration of a specific DNS server:\n" +" ipa dnsserver-show\n" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:44 +msgid "" +"\n" +" Update configuration of a specific DNS server:\n" +" ipa dnsserver-mod\n" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:62 +msgid "DNS server" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:63 +msgid "DNS servers" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:71 +msgid "DNS Servers" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:72 +msgid "DNS Server" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:113 +msgid "DNS Server name" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:119 +msgid "SOA mname override" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:120 +msgid "SOA mname (authoritative server) override" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:126 +msgid "Forwarders" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:128 +msgid "" +"Per-server forwarders. A custom port can be specified for each forwarder " +"using a standard format \"IP_ADDRESS port PORT\"" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:138 +msgid "" +"Per-server conditional forwarding policy. Set to \"none\" to disable " +"forwarding to global forwarder for this zone. In that case, conditional zone " +"forwarders are disregarded." +msgstr "" + +#: ipaserver/plugins/dnsserver.py:148 ipaserver/plugins/dns.py:2063 +#: ipaserver/plugins/dns.py:2237 ipaserver/plugins/dns.py:3210 +#: ipaserver/plugins/dns.py:4191 +msgid "DNS is not configured" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:154 +msgid "Modify DNS server configuration" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:157 #, python-format -msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgid "Modified DNS server \"%(value)s\"" msgstr "" -#: ipaserver/plugins/pwpolicy.py:171 -msgid "Add Class of Service entry" +#: ipaserver/plugins/dnsserver.py:162 +msgid "Search for DNS servers." msgstr "" -#: ipaserver/plugins/pwpolicy.py:194 -msgid "Delete Class of Service entry" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:200 -msgid "Modify Class of Service entry" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:218 -msgid "Display Class of Service entry" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:224 -msgid "Search for Class of Service entry" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:237 -msgid "password policy" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:238 -msgid "password policies" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:297 -msgid "Password Policies" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:298 ipaserver/plugins/internal.py:1233 -msgid "Password Policy" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:370 -msgid "Max repeat" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:371 -msgid "Maximum number of same consecutive characters" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:379 -msgid "Max sequence" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:380 -msgid "The max. length of monotonic character sequences (abcd)" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:388 -msgid "Dictionary check" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:389 -msgid "Check if the password is a dictionary word" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:395 -msgid "User check" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:396 -msgid "Check if the password contains the username" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:469 -msgid "" -"Minimum length must be >= 6 if maxrepeat, maxsequence, dictcheck or " -"usercheck are defined" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:495 -msgid "Maximum password life must be equal to or greater than the minimum." -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:554 -msgid "cannot delete global password policy" -msgstr "" - -#: ipaserver/plugins/pwpolicy.py:588 -msgid "priority cannot be set on global policy" -msgstr "" - -#: ipaserver/plugins/server.py:36 -msgid "" -"\n" -"IPA servers\n" -msgstr "" - -#: ipaserver/plugins/server.py:38 -msgid "" -"\n" -"Get information about installed IPA servers.\n" -msgstr "" - -#: ipaserver/plugins/server.py:42 -msgid "" -"\n" -" Find all servers:\n" -" ipa server-find\n" -msgstr "" - -#: ipaserver/plugins/server.py:45 -msgid "" -"\n" -" Show specific server:\n" -" ipa server-show ipa.example.com\n" -msgstr "" - -#: ipaserver/plugins/server.py:61 -msgid "server" -msgstr "" - -#: ipaserver/plugins/server.py:62 -msgid "servers" -msgstr "" - -#: ipaserver/plugins/server.py:70 -msgid "IPA Servers" -msgstr "" - -#: ipaserver/plugins/server.py:71 ipaserver/plugins/internal.py:1948 -#: ipaserver/plugins/location.py:157 -msgid "IPA Server" -msgstr "" - -#: ipaserver/plugins/server.py:133 -msgid "Server location" -msgstr "" - -#: ipaserver/plugins/server.py:140 -msgid "Service weight" -msgstr "" - -#: ipaserver/plugins/server.py:141 -msgid "Weight for server services" -msgstr "" - -#: ipaserver/plugins/server.py:148 -msgid "Service relative weight" -msgstr "" - -#: ipaserver/plugins/server.py:149 -msgid "Relative weight for server services (counts per location)" -msgstr "" - -#: ipaserver/plugins/server.py:154 -msgid "Enabled server roles" -msgstr "" - -#: ipaserver/plugins/server.py:155 -msgid "List of enabled roles" -msgstr "" - -#: ipaserver/plugins/server.py:222 -msgid "Modify information about an IPA server." -msgstr "" - -#: ipaserver/plugins/server.py:224 +#: ipaserver/plugins/dnsserver.py:166 #, python-format -msgid "Modified IPA server \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/server.py:306 -#, python-format -msgid "%(count)d IPA server matched" -msgid_plural "%(count)d IPA servers matched" +msgid "%(count)d DNS server matched" +msgid_plural "%(count)d DNS servers matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/server.py:444 +#: ipaserver/plugins/dnsserver.py:176 +msgid "IPA DNS Server is not installed" +msgstr "" + +#: ipaserver/plugins/dnsserver.py:183 +msgid "Display configuration of a DNS server." +msgstr "" + +#: ipaserver/plugins/dnsserver.py:193 +msgid "Add a new DNS server." +msgstr "" + +#: ipaserver/plugins/dnsserver.py:196 #, python-format -msgid "Deleted IPA server \"%(value)s\"" +msgid "Added new DNS server \"%(value)s\"" msgstr "" -#: ipaserver/plugins/server.py:449 -msgid "Ignore topology errors" +#: ipaserver/plugins/dnsserver.py:205 +msgid "Delete a DNS server" msgstr "" -#: ipaserver/plugins/server.py:450 -msgid "Ignore topology connectivity problems after removal" +#: ipaserver/plugins/dnsserver.py:208 +#, python-format +msgid "Deleted DNS server \"%(value)s\"" msgstr "" -#: ipaserver/plugins/server.py:455 -msgid "Ignore check for last remaining CA or DNS server" -msgstr "" - -#: ipaserver/plugins/server.py:456 -msgid "Skip a check whether the last CA master or DNS server is removed" -msgstr "" - -#: ipaserver/plugins/server.py:462 -msgid "Force server removal" -msgstr "" - -#: ipaserver/plugins/server.py:463 -msgid "Force server removal even if it does not exist" -msgstr "" - -#: ipaserver/plugins/server.py:500 +#: ipaserver/plugins/domainlevel.py:69 +#, python-brace-format msgid "" -"Replica is active DNSSEC key master. Uninstall could break your DNS system. " -"Please disable or replace DNSSEC key master first." +"Domain Level cannot be raised to {0}, existing replication conflicts have to " +"be resolved." msgstr "" -#: ipaserver/plugins/server.py:506 -msgid "Deleting this server will leave your installation without a DNS." +#: ipaserver/plugins/domainlevel.py:112 +msgid "Server does not support domain level functionality" msgstr "" -#: ipaserver/plugins/server.py:520 -msgid "" -"Deleting this server is not allowed as it would leave your installation " -"without a KRA." +#: ipaserver/plugins/domainlevel.py:147 +msgid "Domain Level cannot be lowered." msgstr "" -#: ipaserver/plugins/server.py:530 -msgid "" -"Deleting this server is not allowed as it would leave your installation " -"without a CA." +#: ipaserver/plugins/domainlevel.py:155 +#, python-brace-format +msgid "Domain Level cannot be raised to {0}, server {1} does not support it." msgstr "" -#: ipaserver/plugins/server.py:545 -msgid "Ignoring these warnings and proceeding with removal" -msgstr "" - -#: ipaserver/plugins/server.py:595 -#, python-format -msgid "" -"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " -"%(err)s" -msgstr "" - -#: ipaserver/plugins/server.py:616 -#, python-format -msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" -msgstr "" - -#: ipaserver/plugins/server.py:637 -#, python-format -msgid "Failed to remove server %(master)s from server list: %(err)s" -msgstr "" - -#: ipaserver/plugins/server.py:663 -#, python-format -msgid "Failed to clean up Custodia keys for %(master)s: %(err)s" -msgstr "" - -#: ipaserver/plugins/server.py:701 -#, python-format -msgid "Failed to cleanup server principals/keys: %(err)s" -msgstr "" - -#: ipaserver/plugins/server.py:717 -#, python-format -msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" -msgstr "" - -#: ipaserver/plugins/server.py:722 -msgid "You may need to manually remove them from the tree" -msgstr "" - -#: ipaserver/plugins/server.py:737 -#, python-format -msgid "Forcing removal of %(hostname)s" -msgstr "" - -#: ipaserver/plugins/server.py:747 -msgid "Ignoring topology connectivity errors." -msgstr "" - -#: ipaserver/plugins/server.py:766 -#, python-format -msgid "Failed to remove server from security domain: %s" -msgstr "" - -#: ipaserver/plugins/server.py:793 -msgid "Server has already been deleted" -msgstr "" - -#: ipaserver/plugins/server.py:843 -msgid "Agreements deleted" -msgstr "" - -#: ipaserver/plugins/server.py:854 -msgid "Following segments were not deleted:" -msgstr "" - -#: ipaserver/plugins/server.py:927 ipaserver/plugins/trust.py:1865 -#, python-format -msgid "must be \"%s\"" -msgstr "" - -#: ipaserver/plugins/server.py:939 -msgid "not allowed to perform server connection check" -msgstr "" - -#: ipaserver/plugins/server.py:965 -msgid "Set enabled/hidden state of a server." -msgstr "" - -#: ipaserver/plugins/server.py:971 -msgid "State" -msgstr "" - -#: ipaserver/plugins/server.py:972 -msgid "Server state" -msgstr "" - -#: ipaserver/plugins/server.py:977 -#, python-format -msgid "Changed server state of \"%(value)s\"." -msgstr "" - -#: ipaserver/plugins/server.py:986 -msgid "Cannot hide CA renewal master." -msgstr "" - -#: ipaserver/plugins/server.py:988 -msgid "Cannot hide DNSSec key master." -msgstr "" - -#: ipaserver/plugins/server.py:1000 -#, python-format -msgid "Cannot hide last enabled %(name)s server." -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:34 -msgid "" -"\n" -"Groups of Sudo Commands\n" -"\n" -"Manage groups of Sudo Commands.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new Sudo Command Group:\n" -" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" -"\n" -" Remove a Sudo Command Group:\n" -" ipa sudocmdgroup-del admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" -"vim admincmds\n" -"\n" -" Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" -"\n" -" Show a Sudo Command Group:\n" -" ipa sudocmdgroup-show admincmds\n" -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:67 -msgid "sudo command group" -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:68 -msgid "sudo command groups" -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:149 -#, python-format -msgid "Added Sudo Command Group \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:157 -#, python-format -msgid "Deleted Sudo Command Group \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:165 -#, python-format -msgid "Modified Sudo Command Group \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/sudocmdgroup.py:174 -#, python-format -msgid "%(count)d Sudo Command Group matched" -msgid_plural "%(count)d Sudo Command Groups matched" -msgstr[0] "" -msgstr[1] "" - #: ipaserver/plugins/group.py:62 msgid "" "\n" @@ -17330,7 +15250,7 @@ msgid "" msgstr "" #: ipaserver/plugins/group.py:634 ipaserver/plugins/group.py:691 -#: ipaserver/plugins/trust.py:873 +#: ipaserver/plugins/trust.py:874 msgid "" "Cannot perform join operation without own domain configured. Make sure you " "have run ipa-adtrust-install on the IPA server first" @@ -17361,148 +15281,10 @@ msgstr "" msgid "Remove users that can manage members of this group." msgstr "" -#: ipaserver/plugins/whoami.py:15 -msgid "" -"\n" -"Return information about currently authenticated identity\n" -"\n" -"Who am I command returns information on how to get\n" -"more details about the identity authenticated for this\n" -"request. The information includes:\n" -"\n" -" * type of object\n" -" * command to retrieve details of the object\n" -" * arguments and options to pass to the command\n" -"\n" -"The information is returned as a dictionary. Examples below use\n" -"'key: value' output for illustrative purposes.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Look up as IPA user:\n" -" kinit admin\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: user\n" -" command: user_show/1\n" -" arguments: admin\n" -" ------------------------------------------\n" -"\n" -" Look up as a user from a trusted domain:\n" -" kinit user@AD.DOMAIN\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: idoverrideuser\n" -" command: idoverrideuser_show/1\n" -" arguments: ('default trust view', 'user@ad.domain')\n" -" ------------------------------------------\n" -"\n" -" Look up as a host:\n" -" kinit -k\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: host\n" -" command: host_show/1\n" -" arguments: ipa.example.com\n" -" ------------------------------------------\n" -"\n" -" Look up as a Kerberos service:\n" -" kinit -k -t /path/to/keytab HTTP/ipa.example.com\n" -" ipa console\n" -" >> api.Command.whoami()\n" -" ------------------------------------------\n" -" object: service\n" -" command: service_show/1\n" -" arguments: HTTP/ipa.example.com\n" -" ------------------------------------------\n" +#: ipaserver/plugins/hbac.py:7 +msgid "Host-based access control commands" msgstr "" -#: ipaserver/plugins/whoami.py:77 -msgid "Describe currently authenticated identity." -msgstr "" - -#: ipaserver/plugins/whoami.py:82 ipaserver/plugins/whoami.py:88 -msgid "Object class name" -msgstr "" - -#: ipaserver/plugins/whoami.py:83 ipaserver/plugins/whoami.py:89 -msgid "Function to get details" -msgstr "" - -#: ipaserver/plugins/whoami.py:84 ipaserver/plugins/whoami.py:91 -msgid "Arguments to details function" -msgstr "" - -#: ipaserver/plugins/whoami.py:111 -msgid "Cannot query Directory Manager with API" -msgstr "" - -#: ipaserver/plugins/privilege.py:76 -#, python-format -msgid "" -"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " -"privilege" -msgstr "" - -#: ipaserver/plugins/privilege.py:149 -msgid "Privilege" -msgstr "" - -#: ipaserver/plugins/privilege.py:169 -#, python-format -msgid "Added privilege \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/privilege.py:176 -#, python-format -msgid "Deleted privilege \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/privilege.py:183 -#, python-format -msgid "Modified privilege \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/privilege.py:191 -#, python-format -msgid "%(count)d privilege matched" -msgid_plural "%(count)d privileges matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/role.py:82 ipaserver/plugins/serverrole.py:186 -msgid "roles" -msgstr "" - -#: ipaserver/plugins/role.py:143 -msgid "Role" -msgstr "" - -#: ipaserver/plugins/role.py:164 -#, python-format -msgid "Added role \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/role.py:172 -#, python-format -msgid "Deleted role \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/role.py:180 -#, python-format -msgid "Modified role \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/role.py:189 -#, python-format -msgid "%(count)d role matched" -msgid_plural "%(count)d roles matched" -msgstr[0] "" -msgstr[1] "" - #: ipaserver/plugins/hbacrule.py:108 msgid "The deny type has been deprecated." msgstr "" @@ -17519,6 +15301,10 @@ msgstr "" msgid "HBAC Services" msgstr "" +#: ipaserver/plugins/hbacrule.py:290 ipaserver/plugins/hbacsvcgroup.py:108 +msgid "HBAC Service Groups" +msgstr "" + #: ipaserver/plugins/hbacrule.py:302 #, python-format msgid "Added HBAC rule \"%(value)s\"" @@ -17534,21 +15320,6 @@ msgstr "" msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipaserver/plugins/hbacrule.py:345 ipaserver/plugins/caacl.py:294 -#: ipaserver/plugins/netgroup.py:321 -msgid "user category cannot be set to 'all' while there are allowed users" -msgstr "" - -#: ipaserver/plugins/hbacrule.py:350 ipaserver/plugins/caacl.py:298 -#: ipaserver/plugins/netgroup.py:326 -msgid "host category cannot be set to 'all' while there are allowed hosts" -msgstr "" - -#: ipaserver/plugins/hbacrule.py:356 ipaserver/plugins/caacl.py:302 -msgid "" -"service category cannot be set to 'all' while there are allowed services" -msgstr "" - #: ipaserver/plugins/hbacrule.py:368 #, python-format msgid "%(count)d HBAC rule matched" @@ -17570,206 +15341,425 @@ msgstr "" msgid "Access time" msgstr "" -#: ipaserver/plugins/hbacrule.py:518 ipaserver/plugins/caacl.py:397 -#: ipaserver/plugins/selinuxusermap.py:572 ipaserver/plugins/sudorule.py:607 -msgid "users cannot be added when user category='all'" -msgstr "" - -#: ipaserver/plugins/hbacrule.py:549 ipaserver/plugins/caacl.py:429 -#: ipaserver/plugins/selinuxusermap.py:605 ipaserver/plugins/sudorule.py:710 -msgid "hosts cannot be added when host category='all'" -msgstr "" - #: ipaserver/plugins/hbacrule.py:565 msgid "Add source hosts and hostgroups to an HBAC rule." msgstr "" -#: ipaserver/plugins/hbacrule.py:606 ipaserver/plugins/caacl.py:459 -msgid "services cannot be added when service category='all'" +#: ipaserver/plugins/hbacsvc.py:28 +msgid "" +"\n" +"HBAC Services\n" +"\n" +"The PAM services that HBAC can control access to. The name used here\n" +"must match the service name that PAM is evaluating.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new HBAC service:\n" +" ipa hbacsvc-add tftp\n" +"\n" +" Modify an existing HBAC service:\n" +" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +"\n" +" Search for HBAC services. This example will return two results, the FTP\n" +" service and the newly-added tftp service:\n" +" ipa hbacsvc-find ftp\n" +"\n" +" Delete an HBAC service:\n" +" ipa hbacsvc-del tftp\n" +"\n" msgstr "" -#: ipaserver/plugins/user.py:164 ipaserver/plugins/sudorule.py:442 -msgid "users" +#: ipaserver/plugins/hbacsvc.py:62 +msgid "HBAC services" msgstr "" -#: ipaserver/plugins/user.py:496 +#: ipaserver/plugins/hbacsvc.py:96 +msgid "HBAC Service" +msgstr "" + +#: ipaserver/plugins/hbacsvc.py:119 #, python-format -msgid "Added user \"%(value)s\"" +msgid "Added HBAC service \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:562 ipaserver/plugins/host.py:692 -#: ipaserver/plugins/stageuser.py:329 ipaserver/plugins/stageuser.py:533 -#: ipaserver/plugins/baseuser.py:574 +#: ipaserver/plugins/hbacsvc.py:127 #, python-format -msgid "can be at most %(len)d characters" +msgid "Deleted HBAC service \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:592 ipaserver/plugins/migration.py:804 -msgid "Default group for new users not found" -msgstr "" - -#: ipaserver/plugins/user.py:595 -msgid "Default group for new users is not POSIX" -msgstr "" - -#: ipaserver/plugins/user.py:695 +#: ipaserver/plugins/hbacsvc.py:135 #, python-format -msgid "Deleted user \"%(value)s\"" +msgid "Modified HBAC service \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:713 +#: ipaserver/plugins/hbacsvc.py:144 #, python-format -msgid "%s: user is already preserved" -msgstr "" - -#: ipaserver/plugins/user.py:835 -#, python-format -msgid "Modified user \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/user.py:871 ipaserver/plugins/stageuser.py:471 -#, python-format -msgid "%(count)d user matched" -msgid_plural "%(count)d users matched" +msgid "%(count)d HBAC service matched" +msgid_plural "%(count)d HBAC services matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/user.py:949 -#, python-format -msgid "Undeleted user account \"%(value)s\"" +#: ipaserver/plugins/hbacsvcgroup.py:64 +msgid "HBAC service group" msgstr "" -#: ipaserver/plugins/user.py:963 -#, python-format -msgid "user \"%s\" is already active" +#: ipaserver/plugins/hbacsvcgroup.py:65 +msgid "HBAC service groups" msgstr "" -#: ipaserver/plugins/user.py:994 -#, python-format -msgid "Staged user account \"%(value)s\"" +#: ipaserver/plugins/hbacsvcgroup.py:109 +msgid "HBAC Service Group" msgstr "" -#: ipaserver/plugins/user.py:1089 +#: ipaserver/plugins/hbacsvcgroup.py:131 #, python-format -msgid "Disabled user account \"%(value)s\"" +msgid "Added HBAC service group \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:1111 +#: ipaserver/plugins/hbacsvcgroup.py:139 #, python-format -msgid "Enabled user account \"%(value)s\"" +msgid "Deleted HBAC service group \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:1128 +#: ipaserver/plugins/hbacsvcgroup.py:147 +#, python-format +msgid "Modified HBAC service group \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/hbacsvcgroup.py:156 +#, python-format +msgid "%(count)d HBAC service group matched" +msgid_plural "%(count)d HBAC service groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/host.py:74 msgid "" "\n" -" Unlock a user account\n" +"Hosts/Machines\n" "\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked " -"by\n" -" an administrator." +"A host represents a machine. It can be used in a number of contexts:\n" +"- service entries are associated with a host\n" +"- a host stores the host/ service principal\n" +"- a host can be used in Host-based Access Control (HBAC) rules\n" +"- every enrolled client generates a host entry\n" msgstr "" -#: ipaserver/plugins/user.py:1137 -#, python-format -msgid "Unlocked account \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/user.py:1169 -msgid "Failed logins" -msgstr "" - -#: ipaserver/plugins/user.py:1173 -msgid "Last successful authentication" -msgstr "" - -#: ipaserver/plugins/user.py:1177 -msgid "Last failed authentication" -msgstr "" - -#: ipaserver/plugins/user.py:1181 -msgid "Time now" -msgstr "" - -#: ipaserver/plugins/user.py:1189 +#: ipaserver/plugins/host.py:82 msgid "" "\n" -" Lockout status of a user account\n" +"ENROLLMENT:\n" "\n" -" An account may become locked if the password is entered incorrectly too\n" -" many times within a specific time period as controlled by password\n" -" policy. A locked account is a temporary condition and may be unlocked " -"by\n" -" an administrator.\n" +"There are three enrollment scenarios when enrolling a new client:\n" "\n" -" This connects to each IPA master and displays the lockout status on\n" -" each one.\n" +"1. You are enrolling as a full administrator. The host entry may exist\n" +" or not. A full administrator is a member of the hostadmin role\n" +" or the admins group.\n" +"2. You are enrolling as a limited administrator. The host must already\n" +" exist. A limited administrator is a member a role with the\n" +" Host Enrollment privilege.\n" +"3. The host has been created with a one-time password.\n" +msgstr "" + +#: ipaserver/plugins/host.py:94 +msgid "" "\n" -" To determine whether an account is locked on a given server you need\n" -" to compare the number of failed logins and the time of the last " -"failure.\n" -" For an account to be locked it must exceed the maxfail failures within\n" -" the failinterval duration as specified in the password policy " -"associated\n" -" with the user.\n" +"RE-ENROLLMENT:\n" "\n" -" The failed login counter is modified only when a user attempts a log in\n" -" so it is possible that an account may appear locked but the last failed\n" -" login attempt is older than the lockouttime of the password policy. " -"This\n" -" means that the user may attempt a login again. " +"Host that has been enrolled at some point, and lost its configuration (e.g. " +"VM\n" +"destroyed) can be re-enrolled.\n" +"\n" +"For more information, consult the manual pages for ipa-client-install.\n" +"\n" +"A host can optionally store information such as where it is located,\n" +"the OS that it runs, etc.\n" msgstr "" -#: ipaserver/plugins/user.py:1243 +#: ipaserver/plugins/host.py:106 +msgid "" +"\n" +" Add a new host:\n" +" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example." +"com\n" +msgstr "" + +#: ipaserver/plugins/host.py:109 +msgid "" +"\n" +" Delete a host:\n" +" ipa host-del test.example.com\n" +msgstr "" + +#: ipaserver/plugins/host.py:112 +msgid "" +"\n" +" Add a new host with a one-time password:\n" +" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" +msgstr "" + +#: ipaserver/plugins/host.py:115 +msgid "" +"\n" +" Add a new host with a random one-time password:\n" +" ipa host-add --os='Fedora 12' --random test.example.com\n" +msgstr "" + +#: ipaserver/plugins/host.py:118 +msgid "" +"\n" +" Modify information about a host:\n" +" ipa host-mod --os='Fedora 12' test.example.com\n" +msgstr "" + +#: ipaserver/plugins/host.py:121 +msgid "" +"\n" +" Remove SSH public keys of a host and update DNS to reflect this change:\n" +" ipa host-mod --sshpubkey= --updatedns test.example.com\n" +msgstr "" + +#: ipaserver/plugins/host.py:124 +msgid "" +"\n" +" Disable the host Kerberos key, SSL certificate and all of its services:\n" +" ipa host-disable test.example.com\n" +msgstr "" + +#: ipaserver/plugins/host.py:127 +msgid "" +"\n" +" Add a host that can manage this host's keytab and certificate:\n" +" ipa host-add-managedby --hosts=test2 test\n" +msgstr "" + +#: ipaserver/plugins/host.py:130 +msgid "" +"\n" +" Allow user to create a keytab:\n" +" ipa host-allow-create-keytab test2 --users=tuser1\n" +msgstr "" + +#: ipaserver/plugins/host.py:462 ipaserver/plugins/internal.py:1161 +#: ipaserver/plugins/internal.py:1283 +msgid "Host" +msgstr "" + +#: ipaserver/plugins/host.py:514 +msgid "Base-64 encoded host certificate" +msgstr "" + +#: ipaserver/plugins/host.py:521 ipaserver/plugins/internal.py:696 +#: ipaserver/plugins/service.py:528 +msgid "Serial Number" +msgstr "" + +#: ipaserver/plugins/host.py:525 ipaserver/plugins/internal.py:697 +#: ipaserver/plugins/service.py:532 +msgid "Serial Number (hex)" +msgstr "" + +#: ipaserver/plugins/host.py:533 ipaserver/plugins/service.py:540 +#: ipaserver/plugins/cert.py:431 +msgid "Not Before" +msgstr "" + +#: ipaserver/plugins/host.py:537 ipaserver/plugins/service.py:544 +#: ipaserver/plugins/cert.py:436 +msgid "Not After" +msgstr "" + +#: ipaserver/plugins/host.py:541 ipaserver/plugins/service.py:548 +#: ipaserver/plugins/cert.py:441 +msgid "Fingerprint (SHA1)" +msgstr "" + +#: ipaserver/plugins/host.py:545 ipaserver/plugins/service.py:552 +#: ipaserver/plugins/cert.py:446 +msgid "Fingerprint (SHA256)" +msgstr "" + +#: ipaserver/plugins/host.py:549 ipaserver/plugins/internal.py:650 +#: ipaserver/plugins/internal.py:691 ipaserver/plugins/service.py:556 +#: ipaserver/plugins/cert.py:1283 +msgid "Revocation reason" +msgstr "" + +#: ipaserver/plugins/host.py:597 ipaserver/plugins/service.py:570 +msgid "Authentication Indicators" +msgstr "" + +#: ipaserver/plugins/host.py:598 ipaserver/plugins/service.py:571 +msgid "" +"Defines an allow list for Authentication Indicators. Use 'otp' to allow OTP-" +"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " +"authentications. Use 'pkinit' to allow PKINIT-based 2FA authentications. Use " +"'hardened' to allow brute-force hardened password authentication by SPAKE or " +"FAST. With no indicator specified, all authentication mechanisms are allowed." +msgstr "" + +#: ipaserver/plugins/host.py:668 #, python-format -msgid "%(host)s failed: %(error)s" +msgid "Added host \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:1281 +#: ipaserver/plugins/host.py:792 #, python-format -msgid "%(host)s failed" +msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:1291 +#: ipaserver/plugins/host.py:797 +msgid "Remove A, AAAA, SSHFP and PTR records of the host(s) managed by IPA DNS" +msgstr "" + +#: ipaserver/plugins/host.py:869 +msgid "No A, AAAA, SSHFP or PTR records found." +msgstr "" + +#: ipaserver/plugins/host.py:885 #, python-format -msgid "Account disabled: %(disabled)s" +msgid "Modified host \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:1299 +#: ipaserver/plugins/host.py:906 +msgid "Password cannot be set on enrolled host." +msgstr "" + +#: ipaserver/plugins/host.py:910 +msgid "cn is immutable" +msgstr "" + +#: ipaserver/plugins/host.py:1035 #, python-format -msgid "Added certificates to user \"%(value)s\"" -msgstr "" +msgid "%(count)d host matched" +msgid_plural "%(count)d hosts matched" +msgstr[0] "" +msgstr[1] "" -#: ipaserver/plugins/user.py:1305 +#: ipaserver/plugins/host.py:1190 #, python-format -msgid "Removed certificates from user \"%(value)s\"" +msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:1310 ipaserver/plugins/baseuser.py:952 -msgid "Add one or more certificate mappings to the user entry." -msgstr "" - -#: ipaserver/plugins/user.py:1315 ipaserver/plugins/baseuser.py:971 -msgid "Remove one or more certificate mappings from the user entry." -msgstr "" - -#: ipaserver/plugins/user.py:1330 -msgid "Add new principal alias to the user entry" -msgstr "" - -#: ipaserver/plugins/user.py:1331 +#: ipaserver/plugins/host.py:1359 #, python-format -msgid "Added new aliases to user \"%(value)s\"" +msgid "Added certificates to host \"%(value)s\"" msgstr "" -#: ipaserver/plugins/user.py:1336 -msgid "Remove principal alias from the user entry" -msgstr "" - -#: ipaserver/plugins/user.py:1337 +#: ipaserver/plugins/host.py:1366 #, python-format -msgid "Removed aliases from user \"%(value)s\"" +msgid "Removed certificates from host \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/host.py:1382 +msgid "Add new principal alias to host entry" +msgstr "" + +#: ipaserver/plugins/host.py:1383 +#, python-format +msgid "Added new aliases to host \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/host.py:1394 +msgid "Remove principal alias from a host entry" +msgstr "" + +#: ipaserver/plugins/host.py:1395 +#, python-format +msgid "Removed aliases from host \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:35 +msgid "" +"\n" +"Groups of hosts.\n" +"\n" +"Manage groups of hosts. This is useful for applying access control to a\n" +"number of hosts by using Host-based Access Control.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new host group:\n" +" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" +"\n" +" Add another new host group:\n" +" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" +"\n" +" Add members to the hostgroup (using Bash brace expansion):\n" +" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" +"\n" +" Add a hostgroup as a member of another hostgroup:\n" +" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" +"\n" +" Remove a host from the hostgroup:\n" +" ipa hostgroup-remove-member --hosts=box2 baltimore\n" +"\n" +" Display a host group:\n" +" ipa hostgroup-show baltimore\n" +"\n" +" Add a member manager:\n" +" ipa hostgroup-add-member-manager --users=user1 baltimore\n" +"\n" +" Remove a member manager\n" +" ipa hostgroup-remove-member-manager --users=user1 baltimore\n" +"\n" +" Delete a hostgroup:\n" +" ipa hostgroup-del baltimore\n" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:107 +msgid "host groups" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:179 +msgid "Host Group" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:223 +#, python-format +msgid "Added hostgroup \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:239 +#, python-format +msgid "" +"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:262 +#, python-format +msgid "Deleted hostgroup \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:266 ipaserver/plugins/hostgroup.py:284 +#: ipaserver/plugins/hostgroup.py:349 +msgid "hostgroup" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:268 ipaserver/plugins/hostgroup.py:286 +msgid "privileged hostgroup" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:278 +#, python-format +msgid "Modified hostgroup \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/hostgroup.py:303 +#, python-format +msgid "%(count)d hostgroup matched" +msgid_plural "%(count)d hostgroups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/hostgroup.py:362 +msgid "Add users that can manage members of this hostgroup." +msgstr "" + +#: ipaserver/plugins/hostgroup.py:372 +msgid "Remove users that can manage members of this hostgroup." msgstr "" #: ipaserver/plugins/idrange.py:43 @@ -17942,11 +15932,11 @@ msgstr "" msgid "local domain range" msgstr "" -#: ipaserver/plugins/idrange.py:210 ipaserver/plugins/trust.py:674 +#: ipaserver/plugins/idrange.py:210 ipaserver/plugins/trust.py:675 msgid "Active Directory domain range" msgstr "" -#: ipaserver/plugins/idrange.py:211 ipaserver/plugins/trust.py:675 +#: ipaserver/plugins/idrange.py:211 ipaserver/plugins/trust.py:676 msgid "Active Directory trust range with POSIX attributes" msgstr "" @@ -18113,1092 +16103,6 @@ msgstr "" msgid "Options dom-sid and rid-base must be used together" msgstr "" -#: ipaserver/plugins/domainlevel.py:69 -#, python-brace-format -msgid "" -"Domain Level cannot be raised to {0}, existing replication conflicts have to " -"be resolved." -msgstr "" - -#: ipaserver/plugins/domainlevel.py:112 -msgid "Server does not support domain level functionality" -msgstr "" - -#: ipaserver/plugins/domainlevel.py:147 -msgid "Domain Level cannot be lowered." -msgstr "" - -#: ipaserver/plugins/domainlevel.py:155 -#, python-brace-format -msgid "Domain Level cannot be raised to {0}, server {1} does not support it." -msgstr "" - -#: ipaserver/plugins/hbactest.py:45 -msgid "" -"\n" -"Simulate use of Host-based access controls\n" -"\n" -"HBAC rules control who can access what services on what hosts.\n" -"You can use HBAC to control which users or groups can access a service,\n" -"or group of services, on a target host.\n" -"\n" -"Since applying HBAC rules implies use of a production environment,\n" -"this plugin aims to provide simulation of HBAC rules evaluation without\n" -"having access to the production environment.\n" -"\n" -" Test user coming to a service on a named host against\n" -" existing enabled rules.\n" -"\n" -" ipa hbactest --user= --host= --service=\n" -" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--sizelimit= ]\n" -"\n" -" --user, --host, and --service are mandatory, others are optional.\n" -"\n" -" If --rules is specified simulate enabling of the specified rules and test\n" -" the login of the user using only these rules.\n" -"\n" -" If --enabled is specified, all enabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --disabled is specified, all disabled HBAC rules will be added to " -"simulation\n" -"\n" -" If --nodetail is specified, do not return information about rules matched/" -"not matched.\n" -"\n" -" If both --rules and --enabled are specified, apply simulation to --rules " -"_and_\n" -" all IPA enabled rules.\n" -"\n" -" If no --rules specified, simulation is run against all IPA enabled rules.\n" -" By default there is a IPA-wide limit to number of entries fetched, you can " -"change it\n" -" with --sizelimit option.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Use all enabled HBAC rules in IPA database to simulate:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 2. Disable detailed summary of how rules were applied:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -"\n" -" 3. Test explicitly specified HBAC rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" -" --rules=myrule --rules=my-second-rule\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: myrule\n" -"\n" -" 4. Use all enabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" -" --rules=myrule --rules=my-second-rule --enabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Matched rules: allow_all\n" -"\n" -" 5. Test all disabled HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: new-rule\n" -"\n" -" 6. Test all disabled HBAC rules in IPA database + explicitly specified " -"rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" -" --rules=myrule --rules=my-second-rule --disabled\n" -" ---------------------\n" -" Access granted: False\n" -" ---------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -"\n" -" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" -" --enabled --disabled\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Not matched rules: my-second-rule\n" -" Not matched rules: my-third-rule\n" -" Not matched rules: myrule\n" -" Not matched rules: new-rule\n" -" Matched rules: allow_all\n" -"\n" -"\n" -"HBACTEST AND TRUSTED DOMAINS\n" -"\n" -"When an external trusted domain is configured in IPA, HBAC rules are also " -"applied\n" -"on users accessing IPA resources from the trusted domain. Trusted domain " -"users and\n" -"groups (and their SIDs) can be then assigned to external groups which can " -"be\n" -"members of POSIX groups in IPA which can be used in HBAC rules and thus " -"allowing\n" -"access to resources protected by the HBAC system.\n" -"\n" -"hbactest plugin is capable of testing access for both local IPA users and " -"users\n" -"from the trusted domains, either by a fully qualified user name or by user " -"SID.\n" -"Such user names need to have a trusted domain specified as a short name\n" -"(DOMAIN\\Administrator) or with a user principal name (UPN), " -"Administrator@ad.test.\n" -"\n" -"Please note that hbactest executed with a trusted domain user as --user " -"parameter\n" -"can be only run by members of \"trust admins\" group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" 1. Test if a user from a trusted domain specified by its shortname " -"matches any\n" -" rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 2. Test if a user from a trusted domain specified by its domain name " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" -"service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 3. Test if a user from a trusted domain specified by its SID matches any " -"rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Matched rules: can_login\n" -"\n" -" 4. Test if other user from a trusted domain specified by its SID matches " -"any rule:\n" -"\n" -" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\" -"\\\n" -" --host `hostname` --service sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -"\n" -" 5. Test if other user from a trusted domain specified by its shortname " -"matches\n" -" any rule:\n" -"\n" -" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " -"sshd\n" -" --------------------\n" -" Access granted: True\n" -" --------------------\n" -" Matched rules: allow_all\n" -" Not matched rules: can_login\n" -msgstr "" - -#: ipaserver/plugins/hbactest.py:384 -msgid "Unresolved rules in --rules" -msgstr "" - -#: ipaserver/plugins/hbactest.py:408 ipaserver/plugins/trust.py:345 -msgid "" -"Cannot search in trusted domains without own domain configured. Make sure " -"you have run ipa-adtrust-install on the IPA server first" -msgstr "" - -#: ipaserver/plugins/hbactest.py:497 -#, python-format -msgid "Access granted: %s" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:35 -msgid "" -"\n" -"Groups of hosts.\n" -"\n" -"Manage groups of hosts. This is useful for applying access control to a\n" -"number of hosts by using Host-based Access Control.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new host group:\n" -" ipa hostgroup-add --desc=\"Baltimore hosts\" baltimore\n" -"\n" -" Add another new host group:\n" -" ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" -"\n" -" Add members to the hostgroup (using Bash brace expansion):\n" -" ipa hostgroup-add-member --hosts={box1,box2,box3} baltimore\n" -"\n" -" Add a hostgroup as a member of another hostgroup:\n" -" ipa hostgroup-add-member --hostgroups=baltimore maryland\n" -"\n" -" Remove a host from the hostgroup:\n" -" ipa hostgroup-remove-member --hosts=box2 baltimore\n" -"\n" -" Display a host group:\n" -" ipa hostgroup-show baltimore\n" -"\n" -" Add a member manager:\n" -" ipa hostgroup-add-member-manager --users=user1 baltimore\n" -"\n" -" Remove a member manager\n" -" ipa hostgroup-remove-member-manager --users=user1 baltimore\n" -"\n" -" Delete a hostgroup:\n" -" ipa hostgroup-del baltimore\n" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:107 -msgid "host groups" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:179 -msgid "Host Group" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:223 -#, python-format -msgid "Added hostgroup \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:239 -#, python-format -msgid "" -"netgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:262 -#, python-format -msgid "Deleted hostgroup \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:266 ipaserver/plugins/hostgroup.py:284 -#: ipaserver/plugins/hostgroup.py:349 -msgid "hostgroup" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:268 ipaserver/plugins/hostgroup.py:286 -msgid "privileged hostgroup" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:278 -#, python-format -msgid "Modified hostgroup \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/hostgroup.py:303 -#, python-format -msgid "%(count)d hostgroup matched" -msgid_plural "%(count)d hostgroups matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/hostgroup.py:362 -msgid "Add users that can manage members of this hostgroup." -msgstr "" - -#: ipaserver/plugins/hostgroup.py:372 -msgid "Remove users that can manage members of this hostgroup." -msgstr "" - -#: ipaserver/plugins/serverroles.py:84 -#, python-brace-format -msgid "{role}: role not found" -msgstr "" - -#: ipaserver/plugins/serverroles.py:178 -#, python-brace-format -msgid "{attr}: no such attribute" -msgstr "" - -#: ipaserver/plugins/host.py:74 -msgid "" -"\n" -"Hosts/Machines\n" -"\n" -"A host represents a machine. It can be used in a number of contexts:\n" -"- service entries are associated with a host\n" -"- a host stores the host/ service principal\n" -"- a host can be used in Host-based Access Control (HBAC) rules\n" -"- every enrolled client generates a host entry\n" -msgstr "" - -#: ipaserver/plugins/host.py:82 -msgid "" -"\n" -"ENROLLMENT:\n" -"\n" -"There are three enrollment scenarios when enrolling a new client:\n" -"\n" -"1. You are enrolling as a full administrator. The host entry may exist\n" -" or not. A full administrator is a member of the hostadmin role\n" -" or the admins group.\n" -"2. You are enrolling as a limited administrator. The host must already\n" -" exist. A limited administrator is a member a role with the\n" -" Host Enrollment privilege.\n" -"3. The host has been created with a one-time password.\n" -msgstr "" - -#: ipaserver/plugins/host.py:94 -msgid "" -"\n" -"RE-ENROLLMENT:\n" -"\n" -"Host that has been enrolled at some point, and lost its configuration (e.g. " -"VM\n" -"destroyed) can be re-enrolled.\n" -"\n" -"For more information, consult the manual pages for ipa-client-install.\n" -"\n" -"A host can optionally store information such as where it is located,\n" -"the OS that it runs, etc.\n" -msgstr "" - -#: ipaserver/plugins/host.py:106 -msgid "" -"\n" -" Add a new host:\n" -" ipa host-add --location=\"3rd floor lab\" --locality=Dallas test.example." -"com\n" -msgstr "" - -#: ipaserver/plugins/host.py:109 -msgid "" -"\n" -" Delete a host:\n" -" ipa host-del test.example.com\n" -msgstr "" - -#: ipaserver/plugins/host.py:112 -msgid "" -"\n" -" Add a new host with a one-time password:\n" -" ipa host-add --os='Fedora 12' --password=Secret123 test.example.com\n" -msgstr "" - -#: ipaserver/plugins/host.py:115 -msgid "" -"\n" -" Add a new host with a random one-time password:\n" -" ipa host-add --os='Fedora 12' --random test.example.com\n" -msgstr "" - -#: ipaserver/plugins/host.py:118 -msgid "" -"\n" -" Modify information about a host:\n" -" ipa host-mod --os='Fedora 12' test.example.com\n" -msgstr "" - -#: ipaserver/plugins/host.py:121 -msgid "" -"\n" -" Remove SSH public keys of a host and update DNS to reflect this change:\n" -" ipa host-mod --sshpubkey= --updatedns test.example.com\n" -msgstr "" - -#: ipaserver/plugins/host.py:124 -msgid "" -"\n" -" Disable the host Kerberos key, SSL certificate and all of its services:\n" -" ipa host-disable test.example.com\n" -msgstr "" - -#: ipaserver/plugins/host.py:127 -msgid "" -"\n" -" Add a host that can manage this host's keytab and certificate:\n" -" ipa host-add-managedby --hosts=test2 test\n" -msgstr "" - -#: ipaserver/plugins/host.py:130 -msgid "" -"\n" -" Allow user to create a keytab:\n" -" ipa host-allow-create-keytab test2 --users=tuser1\n" -msgstr "" - -#: ipaserver/plugins/host.py:462 ipaserver/plugins/internal.py:1161 -#: ipaserver/plugins/internal.py:1283 -msgid "Host" -msgstr "" - -#: ipaserver/plugins/host.py:514 -msgid "Base-64 encoded host certificate" -msgstr "" - -#: ipaserver/plugins/host.py:521 ipaserver/plugins/service.py:528 -#: ipaserver/plugins/internal.py:696 -msgid "Serial Number" -msgstr "" - -#: ipaserver/plugins/host.py:525 ipaserver/plugins/service.py:532 -#: ipaserver/plugins/internal.py:697 -msgid "Serial Number (hex)" -msgstr "" - -#: ipaserver/plugins/host.py:562 ipaserver/plugins/service.py:511 -#: ipaserver/plugins/baseuser.py:259 -msgid "Principal alias" -msgstr "" - -#: ipaserver/plugins/host.py:581 ipaserver/plugins/baseuser.py:355 -msgid "SSH public key fingerprint" -msgstr "" - -#: ipaserver/plugins/host.py:597 ipaserver/plugins/service.py:570 -msgid "Authentication Indicators" -msgstr "" - -#: ipaserver/plugins/host.py:598 ipaserver/plugins/service.py:571 -msgid "" -"Defines an allow list for Authentication Indicators. Use 'otp' to allow OTP-" -"based 2FA authentications. Use 'radius' to allow RADIUS-based 2FA " -"authentications. Use 'pkinit' to allow PKINIT-based 2FA authentications. Use " -"'hardened' to allow brute-force hardened password authentication by SPAKE or " -"FAST. With no indicator specified, all authentication mechanisms are allowed." -msgstr "" - -#: ipaserver/plugins/host.py:668 -#, python-format -msgid "Added host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/host.py:792 -#, python-format -msgid "Deleted host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/host.py:797 -msgid "Remove A, AAAA, SSHFP and PTR records of the host(s) managed by IPA DNS" -msgstr "" - -#: ipaserver/plugins/host.py:869 -msgid "No A, AAAA, SSHFP or PTR records found." -msgstr "" - -#: ipaserver/plugins/host.py:885 -#, python-format -msgid "Modified host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/host.py:906 -msgid "Password cannot be set on enrolled host." -msgstr "" - -#: ipaserver/plugins/host.py:910 -msgid "cn is immutable" -msgstr "" - -#: ipaserver/plugins/host.py:1035 -#, python-format -msgid "%(count)d host matched" -msgid_plural "%(count)d hosts matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/host.py:1190 -#, python-format -msgid "Disabled host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/host.py:1359 -#, python-format -msgid "Added certificates to host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/host.py:1366 -#, python-format -msgid "Removed certificates from host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/host.py:1382 -msgid "Add new principal alias to host entry" -msgstr "" - -#: ipaserver/plugins/host.py:1383 -#, python-format -msgid "Added new aliases to host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/host.py:1394 -msgid "Remove principal alias from a host entry" -msgstr "" - -#: ipaserver/plugins/host.py:1395 -#, python-format -msgid "Removed aliases from host \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/migration.py:46 -msgid "" -"\n" -"Migration to IPA\n" -"\n" -"Migrate users and groups from an LDAP server to IPA.\n" -"\n" -"This performs an LDAP query against the remote server searching for\n" -"users and groups in a container. In order to migrate passwords you need\n" -"to bind as a user that can read the userPassword attribute on the remote\n" -"server. This is generally restricted to high-level admins such as\n" -"cn=Directory Manager in 389-ds (this is the default bind user).\n" -"\n" -"The default user container is ou=People.\n" -"\n" -"The default group container is ou=Groups.\n" -"\n" -"Users and groups that already exist on the IPA server are skipped.\n" -"\n" -"Two LDAP schemas define how group members are stored: RFC2307 and\n" -"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" -"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" -"\n" -"The schema compat feature allows IPA to reformat data for systems that\n" -"do not support RFC2307bis. It is recommended that this feature is disabled\n" -"during migration to reduce system overhead. It can be re-enabled after\n" -"migration. To migrate with it enabled use the \"--with-compat\" option.\n" -"\n" -"Migrated users do not have Kerberos credentials, they have only their\n" -"LDAP password. To complete the migration process, users need to go\n" -"to http://ipa.example.com/ipa/migration and authenticate using their\n" -"LDAP password in order to generate their Kerberos credentials.\n" -"\n" -"Migration is disabled by default. Use the command ipa config-mod to\n" -"enable it:\n" -"\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -"If a base DN is not provided with --basedn then IPA will use either\n" -"the value of defaultNamingContext if it is set or the first value\n" -"in namingContexts set in the root of the remote LDAP server.\n" -"\n" -"Users are added as members to the default user group. This can be a\n" -"time-intensive task so during migration this is done in a batch\n" -"mode for every 100 users. As a result there will be a window in which\n" -"users will be added to IPA but will not be members of the default\n" -"user group.\n" -"\n" -"EXAMPLES:\n" -"\n" -" The simplest migration, accepting all defaults:\n" -" ipa migrate-ds ldap://ds.example.com:389\n" -"\n" -" Specify the user and group container. This can be used to migrate user\n" -" and group data from an IPA v1 server:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' \\\n" -" --group-container='cn=groups,cn=accounts' \\\n" -" ldap://ds.example.com:389\n" -"\n" -" Since IPA v2 server already contain predefined groups that may collide " -"with\n" -" groups in migrated (IPA v1) server (for example admins, ipausers), users\n" -" having colliding group as their primary group may happen to belong to\n" -" an unknown group on new IPA v2 server.\n" -" Use --group-overwrite-gid option to overwrite GID of already existing " -"groups\n" -" to prevent this issue:\n" -" ipa migrate-ds --group-overwrite-gid \\\n" -" --user-container='cn=users,cn=accounts' \\\n" -" --group-container='cn=groups,cn=accounts' \\\n" -" ldap://ds.example.com:389\n" -"\n" -" Migrated users or groups may have object class and accompanied attributes\n" -" unknown to the IPA v2 server. These object classes and attributes may be\n" -" left out of the migration process:\n" -" ipa migrate-ds --user-container='cn=users,cn=accounts' \\\n" -" --group-container='cn=groups,cn=accounts' \\\n" -" --user-ignore-objectclass=radiusprofile \\\n" -" --user-ignore-attribute=radiusgroupname \\\n" -" ldap://ds.example.com:389\n" -"\n" -"LOGGING\n" -"\n" -"Migration will log warnings and errors to the Apache error log. This\n" -"file should be evaluated post-migration to correct or investigate any\n" -"issues that were discovered.\n" -"\n" -"For every 100 users migrated an info-level message will be displayed to\n" -"give the current progress and duration to make it possible to track\n" -"the progress of migration.\n" -"\n" -"If the log level is debug, either by setting debug = True in\n" -"/etc/ipa/default.conf or /etc/ipa/server.conf, then an entry will be " -"printed\n" -"for each user added plus a summary when the default user group is\n" -"updated.\n" -msgstr "" - -#: ipaserver/plugins/migration.py:145 -#, python-format -msgid "" -"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." -msgstr "" - -#: ipaserver/plugins/migration.py:146 -#, python-format -msgid "" -"Unable to determine if Kerberos principal %s already exists. Use 'ipa user-" -"mod' to set it manually." -msgstr "" - -#: ipaserver/plugins/migration.py:147 -msgid "" -"Failed to add user to the default group. Use 'ipa group-add-member' to add " -"manually." -msgstr "" - -#: ipaserver/plugins/migration.py:148 -msgid "Migration of LDAP search reference is not supported." -msgstr "" - -#: ipaserver/plugins/migration.py:149 -msgid "Malformed DN" -msgstr "" - -#: ipaserver/plugins/migration.py:194 -#, python-format -msgid "%(user)s is not a POSIX user" -msgstr "" - -#: ipaserver/plugins/migration.py:461 -msgid "" -". Check GID of the existing group. Use --group-overwrite-gid option to " -"overwrite the GID" -msgstr "" - -#: ipaserver/plugins/migration.py:476 -msgid "Invalid LDAP URI." -msgstr "" - -#: ipaserver/plugins/migration.py:678 -#, python-format -msgid "%s to exclude from migration" -msgstr "" - -#: ipaserver/plugins/migration.py:680 -msgid "" -"search results for objects to be migrated\n" -"have been truncated by the server;\n" -"migration process might be incomplete\n" -msgstr "" - -#: ipaserver/plugins/migration.py:769 -#, python-format -msgid "" -"%(container)s LDAP search did not return any result (search base: " -"%(search_base)s, objectclass: %(objectclass)s)" -msgstr "" - -#: ipaserver/plugins/otptoken.py:42 -msgid "" -"\n" -"OTP Tokens\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:44 -msgid "" -"\n" -"Manage OTP tokens.\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:46 -msgid "" -"\n" -"IPA supports the use of OTP tokens for multi-factor authentication. This\n" -"code enables the management of OTP tokens.\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:51 -msgid "" -"\n" -" Add a new token:\n" -" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:54 -msgid "" -"\n" -" Examine the token:\n" -" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:57 -msgid "" -"\n" -" Change the vendor:\n" -" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" -"\"\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:60 -msgid "" -"\n" -" Delete a token:\n" -" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" -msgstr "" - -#: ipaserver/plugins/otptoken.py:137 -msgid "OTP token" -msgstr "" - -#: ipaserver/plugins/otptoken.py:138 -msgid "OTP tokens" -msgstr "" - -#: ipaserver/plugins/otptoken.py:154 -msgid "OTP Tokens" -msgstr "" - -#: ipaserver/plugins/otptoken.py:155 -msgid "OTP Token" -msgstr "" - -#: ipaserver/plugins/otptoken.py:272 -msgid "URI" -msgstr "" - -#: ipaserver/plugins/otptoken.py:281 -#, python-format -msgid "Added OTP token \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/otptoken.py:335 -msgid "cannot be empty" -msgstr "" - -#: ipaserver/plugins/otptoken.py:367 -#, python-format -msgid "Deleted OTP token \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/otptoken.py:373 -#, python-format -msgid "Modified OTP token \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/otptoken.py:422 -#, python-format -msgid "%(count)d OTP token matched" -msgid_plural "%(count)d OTP tokens matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/passwd.py:40 -msgid "" -"\n" -"Set a user's password\n" -"\n" -"If someone other than a user changes that user's password (e.g., Helpdesk\n" -"resets it) then the password will need to be changed the first time it\n" -"is used. This is so the end-user is the only one who knows the password.\n" -"\n" -"The IPA password policy controls how often a password may be changed,\n" -"what strength requirements exist, and the length of the password history.\n" -"\n" -"If the user authentication method is set to password+OTP, the user should\n" -"pass the --otp option when resetting the password.\n" -"\n" -"EXAMPLES:\n" -"\n" -" To reset your own password:\n" -" ipa passwd\n" -"\n" -" To reset your own password when password+OTP is set as authentication " -"method:\n" -" ipa passwd --otp\n" -"\n" -" To change another user's password:\n" -" ipa passwd tuser1\n" -msgstr "" - -#: ipaserver/plugins/passwd.py:114 -msgid "The OTP if the user has a token configured" -msgstr "" - -#: ipaserver/plugins/passwd.py:120 -#, python-format -msgid "Changed password for \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:60 -msgid "" -"\n" -"Services\n" -"\n" -"A IPA service represents a service that runs on a host. The IPA service\n" -"record can store a Kerberos principal, an SSL certificate, or both.\n" -"\n" -"An IPA service can be managed directly from a machine, provided that\n" -"machine has been given the correct permission. This is true even for\n" -"machines other than the one the service is associated with. For example,\n" -"requesting an SSL certificate using the host service principal credentials\n" -"of the host. To manage a service using host credentials you need to\n" -"kinit as the host:\n" -"\n" -" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" -"\n" -"Adding an IPA service allows the associated service to request an SSL\n" -"certificate or keytab, but this is performed as a separate step; they\n" -"are not produced as a result of adding the service.\n" -"\n" -"Only the public aspect of a certificate is stored in a service record;\n" -"the private key is not stored.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Add a new IPA service:\n" -" ipa service-add HTTP/web.example.com\n" -"\n" -" Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" -"\n" -" Override a default list of supported PAC types for the service:\n" -" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" -"\n" -" A typical use case where overriding the PAC type is needed is NFS.\n" -" Currently the related code in the Linux kernel can only handle Kerberos\n" -" tickets up to a maximal size. Since the PAC data can become quite large " -"it\n" -" is recommended to set --pac-type=NONE for NFS services.\n" -"\n" -" Delete an IPA service:\n" -" ipa service-del HTTP/web.example.com\n" -"\n" -" Find all IPA services associated with a host:\n" -" ipa service-find web.example.com\n" -"\n" -" Find all HTTP services:\n" -" ipa service-find HTTP\n" -"\n" -" Disable the service Kerberos key and SSL certificate:\n" -" ipa service-disable HTTP/web.example.com\n" -"\n" -" Request a certificate for an IPA service:\n" -" ipa cert-request --principal=HTTP/web.example.com example.csr\n" -msgstr "" - -#: ipaserver/plugins/service.py:113 -msgid "" -"\n" -" Allow user to create a keytab:\n" -" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" -msgstr "" - -#: ipaserver/plugins/service.py:116 -msgid "" -"\n" -" Generate and retrieve a keytab for an IPA service:\n" -" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" -"httpd.keytab\n" -"\n" -msgstr "" - -#: ipaserver/plugins/service.py:180 -msgid "Trusted to authenticate as user" -msgstr "" - -#: ipaserver/plugins/service.py:181 -msgid "The service is allowed to authenticate on behalf of a client" -msgstr "" - -#: ipaserver/plugins/service.py:226 -#, python-format -msgid "authentication indicators not allowed in service \"%s\"" -msgstr "" - -#: ipaserver/plugins/service.py:242 -msgid "Malformed principal" -msgstr "" - -#: ipaserver/plugins/service.py:321 -msgid "{} is required by the IPA master" -msgstr "" - -#: ipaserver/plugins/service.py:395 -msgid "service" -msgstr "" - -#: ipaserver/plugins/service.py:396 -msgid "services" -msgstr "" - -#: ipaserver/plugins/service.py:512 -msgid "Service principal alias" -msgstr "" - -#: ipaserver/plugins/service.py:520 -msgid "Base-64 encoded service certificate" -msgstr "" - -#: ipaserver/plugins/service.py:596 -msgid "NONE value cannot be combined with other PAC types" -msgstr "" - -#: ipaserver/plugins/service.py:648 -msgid "Add a new IPA service." -msgstr "" - -#: ipaserver/plugins/service.py:650 ipaserver/plugins/service.py:719 -#, python-format -msgid "Added service \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:656 -msgid "force principal name even if host not in DNS" -msgstr "" - -#: ipaserver/plugins/service.py:659 -msgid "Skip host check" -msgstr "" - -#: ipaserver/plugins/service.py:660 -msgid "" -"force service to be created even when host object does not exist to manage it" -msgstr "" - -#: ipaserver/plugins/service.py:678 ipaserver/plugins/service.py:787 -#, python-format -msgid "The host '%s' does not exist to add a service to." -msgstr "" - -#: ipaserver/plugins/service.py:717 -msgid "Add a new SMB service." -msgstr "" - -#: ipaserver/plugins/service.py:733 -msgid "SMB service NetBIOS name" -msgstr "" - -#: ipaserver/plugins/service.py:847 -#, python-format -msgid "Deleted service \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:867 -#, python-format -msgid "Modified service \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:918 -#, python-format -msgid "%(count)d service matched" -msgid_plural "%(count)d services matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/service.py:1117 -#, python-format -msgid "Disabled service \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:1158 -#, python-format -msgid "Added certificates to service principal \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:1165 -#, python-format -msgid "Removed certificates from service principal \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:1181 -msgid "Add new principal alias to a service" -msgstr "" - -#: ipaserver/plugins/service.py:1182 -#, python-format -msgid "Added new aliases to the service principal \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/service.py:1193 -msgid "Remove principal alias from a service" -msgstr "" - -#: ipaserver/plugins/service.py:1194 -#, python-format -msgid "Removed aliases to the service principal \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/batch.py:35 -msgid "" -"\n" -"Plugin to make multiple ipa calls via one remote procedure call\n" -"\n" -"To run this code in the lite-server\n" -"\n" -"curl -H \"Content-Type:application/json\" -H \"Accept:application/" -"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /" -"etc/ipa/ca.crt -d @batch_request.json -X POST http://" -"localhost:8888/ipa/json\n" -"\n" -"where the contents of the file batch_request.json follow the below example\n" -"\n" -"{\"method\":\"batch\",\"params\":[[\n" -" {\"method\":\"group_find\",\"params\":[[],{}]},\n" -" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all" -"\":\"true\"}]},\n" -" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" -" ],{}],\"id\":1}\n" -"\n" -"The format of the response is nested the same way. At the top you will see\n" -" \"error\": null,\n" -" \"id\": 1,\n" -" \"result\": {\n" -" \"count\": 3,\n" -" \"results\": [\n" -"\n" -"\n" -"And then a nested response for each IPA command method sent in the request\n" -"\n" -msgstr "" - -#: ipaserver/plugins/batch.py:71 -msgid "Make multiple ipa calls via one remote procedure call" -msgstr "" - -#: ipaserver/plugins/batch.py:122 -msgid "must contain a tuple (list, dict)" -msgstr "" - #: ipaserver/plugins/internal.py:151 msgid "Internationalization messages" msgstr "" @@ -19219,6 +16123,10 @@ msgstr "" msgid "Are you sure you want to rebuild auto membership?" msgstr "" +#: ipaserver/plugins/internal.py:164 ipaserver/plugins/automember.py:799 +msgid "Automember rebuild membership task completed" +msgstr "" + #: ipaserver/plugins/internal.py:165 msgid "Are you sure you want to proceed with the action?" msgstr "" @@ -19318,6 +16226,10 @@ msgstr "" msgid "RADIUS" msgstr "" +#: ipaserver/plugins/internal.py:192 ipaserver/plugins/pkinit.py:41 +msgid "PKINIT" +msgstr "" + #: ipaserver/plugins/internal.py:193 msgid "Hardened Password (by SPAKE or FAST)" msgstr "" @@ -20591,6 +17503,12 @@ msgstr "" msgid "SHA256 Fingerprint" msgstr "" +#: ipaserver/plugins/internal.py:700 ipaserver/plugins/internal.py:1030 +#: ipaserver/plugins/internal.py:1333 ipaserver/plugins/internal.py:1936 +#: ipaserver/plugins/cert.py:1273 +msgid "Status" +msgstr "" + #: ipaserver/plugins/internal.py:701 msgid "Superseded" msgstr "" @@ -20652,11 +17570,6 @@ msgstr "" msgid "Add certificate mapping data" msgstr "" -#: ipaserver/plugins/internal.py:721 ipaserver/plugins/baseuser.py:406 -#: ipaserver/plugins/baseuser.py:407 -msgid "Certificate mapping data" -msgstr "" - #: ipaserver/plugins/internal.py:723 msgid "Configuration string" msgstr "" @@ -21755,6 +18668,10 @@ msgstr "" msgid "Add password policy" msgstr "" +#: ipaserver/plugins/internal.py:1233 ipaserver/plugins/pwpolicy.py:298 +msgid "Password Policy" +msgstr "" + #: ipaserver/plugins/internal.py:1234 msgid "Remove password policies" msgstr "" @@ -21791,10 +18708,6 @@ msgstr "" msgid "Remove ID ranges" msgstr "" -#: ipaserver/plugins/internal.py:1247 ipaserver/dcerpc_common.py:37 -msgid "Active Directory domain" -msgstr "" - #: ipaserver/plugins/internal.py:1248 msgid "Active Directory domain with POSIX attributes" msgstr "" @@ -23007,6 +19920,10 @@ msgstr "" msgid "Authentication" msgstr "" +#: ipaserver/plugins/internal.py:1942 ipaserver/plugins/automember.py:818 +msgid "Automember" +msgstr "" + #: ipaserver/plugins/internal.py:1943 msgid "Automount" msgstr "" @@ -23023,6 +19940,11 @@ msgstr "" msgid "Identity" msgstr "" +#: ipaserver/plugins/internal.py:1948 ipaserver/plugins/location.py:157 +#: ipaserver/plugins/server.py:71 +msgid "IPA Server" +msgstr "" + #: ipaserver/plugins/internal.py:1949 msgid "Network Services" msgstr "" @@ -23181,10 +20103,6 @@ msgstr "" msgid "Unsupported value" msgstr "" -#: ipaserver/plugins/ldap2.py:277 -msgid "Could not read UPG Definition originfilter. Check your permissions." -msgstr "" - #: ipaserver/plugins/join.py:125 #, python-format msgid "" @@ -23269,407 +20187,10 @@ msgstr "" msgid "Default ticket policy could not be read" msgstr "" -#: ipaserver/plugins/idviews.py:72 ipaserver/plugins/idviews.py:123 -#: ipaserver/plugins/idviews.py:131 ipaserver/plugins/idviews.py:351 -#: ipaserver/plugins/idviews.py:838 -msgid "ID View" +#: ipaserver/plugins/ldap2.py:277 +msgid "Could not read UPG Definition originfilter. Check your permissions." msgstr "" -#: ipaserver/plugins/idviews.py:74 -msgid "system ID View" -msgstr "" - -#: ipaserver/plugins/idviews.py:124 ipaserver/plugins/idviews.py:130 -msgid "ID Views" -msgstr "" - -#: ipaserver/plugins/idviews.py:145 -msgid "User object overrides" -msgstr "" - -#: ipaserver/plugins/idviews.py:149 -msgid "Group object overrides" -msgstr "" - -#: ipaserver/plugins/idviews.py:153 -msgid "Hosts the view applies to" -msgstr "" - -#: ipaserver/plugins/idviews.py:159 ipaserver/plugins/config.py:330 -msgid "Domain resolution order" -msgstr "" - -#: ipaserver/plugins/idviews.py:160 ipaserver/plugins/config.py:331 -msgid "colon-separated list of domains used for short name qualification" -msgstr "" - -#: ipaserver/plugins/idviews.py:196 -#, python-format -msgid "Added ID View \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:213 -#, python-format -msgid "Deleted ID View \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:226 -#, python-format -msgid "Modified an ID View \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:242 -#, python-format -msgid "%(count)d ID View matched" -msgid_plural "%(count)d ID Views matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/idviews.py:352 -msgid "Default Trust View cannot be applied on hosts" -msgstr "" - -#: ipaserver/plugins/idviews.py:380 ipaserver/plugins/idviews.py:413 -msgid "not found" -msgstr "" - -#: ipaserver/plugins/idviews.py:394 -msgid "ID View cannot be applied to IPA master" -msgstr "" - -#: ipaserver/plugins/idviews.py:411 -msgid "ID View already applied" -msgstr "" - -#: ipaserver/plugins/idviews.py:431 -msgid "value" -msgstr "" - -#: ipaserver/plugins/idviews.py:444 -#, python-format -msgid "ID View applied to %i host." -msgstr "" - -#: ipaserver/plugins/idviews.py:445 -#, python-format -msgid "ID View applied to %i hosts." -msgstr "" - -#: ipaserver/plugins/idviews.py:487 -#, python-format -msgid "ID View cleared from %i host." -msgstr "" - -#: ipaserver/plugins/idviews.py:488 -#, python-format -msgid "ID View cleared from %i hosts." -msgstr "" - -#: ipaserver/plugins/idviews.py:556 -msgid "" -"You are trying to reference a magic private group which is not allowed to be " -"overridden. Try overriding the GID attribute of the corresponding user " -"instead." -msgstr "" - -#: ipaserver/plugins/idviews.py:594 -msgid "IPA object" -msgstr "" - -#: ipaserver/plugins/idviews.py:595 -msgid "" -"system IPA objects (e.g. system groups, user private groups) cannot be " -"overridden" -msgstr "" - -#: ipaserver/plugins/idviews.py:689 -#, python-format -msgid "Anchor '%(anchor)s' could not be resolved." -msgstr "" - -#: ipaserver/plugins/idviews.py:839 -msgid "Default Trust View cannot contain IPA users" -msgstr "" - -#: ipaserver/plugins/idviews.py:883 -msgid "Add a new ID override." -msgstr "" - -#: ipaserver/plugins/idviews.py:884 -#, python-format -msgid "Added ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:899 -msgid "Delete an ID override." -msgstr "" - -#: ipaserver/plugins/idviews.py:900 -#, python-format -msgid "Deleted ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:923 -msgid "Modify an ID override." -msgstr "" - -#: ipaserver/plugins/idviews.py:924 -#, python-format -msgid "Modified an ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:931 -msgid "ID override" -msgstr "" - -#: ipaserver/plugins/idviews.py:932 -msgid "ID overrides cannot be renamed" -msgstr "" - -#: ipaserver/plugins/idviews.py:944 -msgid "Search for an ID override." -msgstr "" - -#: ipaserver/plugins/idviews.py:945 -#, python-format -msgid "%(count)d ID override matched" -msgid_plural "%(count)d ID overrides matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/idviews.py:957 -msgid "Display information about an ID override." -msgstr "" - -#: ipaserver/plugins/idviews.py:969 ipaserver/plugins/idviews.py:973 -msgid "User ID override" -msgstr "" - -#: ipaserver/plugins/idviews.py:970 ipaserver/plugins/idviews.py:972 -msgid "User ID overrides" -msgstr "" - -#: ipaserver/plugins/idviews.py:1056 ipaserver/plugins/baseuser.py:401 -#: ipaserver/plugins/baseuser.py:846 ipaserver/plugins/certmap.py:606 -msgid "Base-64 encoded user certificate" -msgstr "" - -#: ipaserver/plugins/idviews.py:1092 ipaserver/plugins/idviews.py:1096 -msgid "Group ID override" -msgstr "" - -#: ipaserver/plugins/idviews.py:1093 ipaserver/plugins/idviews.py:1095 -msgid "Group ID overrides" -msgstr "" - -#: ipaserver/plugins/idviews.py:1137 -msgid "Add one or more certificates to the idoverrideuser entry" -msgstr "" - -#: ipaserver/plugins/idviews.py:1138 -#, python-format -msgid "Added certificates to idoverrideuser \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1160 -msgid "Remove one or more certificates to the idoverrideuser entry" -msgstr "" - -#: ipaserver/plugins/idviews.py:1161 -#, python-format -msgid "Removed certificates from idoverrideuser \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1185 -#, python-format -msgid "Added User ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1210 -#, python-format -msgid "Deleted User ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1216 -#, python-format -msgid "Modified an User ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1248 -#, python-format -msgid "%(count)d User ID override matched" -msgid_plural "%(count)d User ID overrides matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/idviews.py:1284 -#, python-format -msgid "Added Group ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1290 -#, python-format -msgid "Deleted Group ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1296 -#, python-format -msgid "Modified an Group ID override \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/idviews.py:1302 -#, python-format -msgid "%(count)d Group ID override matched" -msgid_plural "%(count)d Group ID overrides matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/automount.py:218 -msgid "automount location" -msgstr "" - -#: ipaserver/plugins/automount.py:219 -msgid "automount locations" -msgstr "" - -#: ipaserver/plugins/automount.py:222 -msgid "Automount Locations" -msgstr "" - -#: ipaserver/plugins/automount.py:223 -msgid "Automount Location" -msgstr "" - -#: ipaserver/plugins/automount.py:263 -#, python-format -msgid "Added automount location \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:283 -#, python-format -msgid "Deleted automount location \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:296 -#, python-format -msgid "%(count)d automount location matched" -msgid_plural "%(count)d automount locations matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/automount.py:349 -msgid "automount map" -msgstr "" - -#: ipaserver/plugins/automount.py:350 -msgid "automount maps" -msgstr "" - -#: ipaserver/plugins/automount.py:393 -msgid "Automount Maps" -msgstr "" - -#: ipaserver/plugins/automount.py:394 -msgid "Automount Map" -msgstr "" - -#: ipaserver/plugins/automount.py:401 -#, python-format -msgid "Added automount map \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:408 -#, python-format -msgid "Deleted automount map \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:428 -#, python-format -msgid "Modified automount map \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:436 -#, python-format -msgid "%(count)d automount map matched" -msgid_plural "%(count)d automount maps matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/automount.py:448 -msgid "Automount key object." -msgstr "" - -#: ipaserver/plugins/automount.py:452 -msgid "automount key" -msgstr "" - -#: ipaserver/plugins/automount.py:453 -msgid "automount keys" -msgstr "" - -#: ipaserver/plugins/automount.py:512 -msgid "Automount Keys" -msgstr "" - -#: ipaserver/plugins/automount.py:513 -msgid "Automount Key" -msgstr "" - -#: ipaserver/plugins/automount.py:514 -#, python-format -msgid "" -"The key,info pair must be unique. A key named %(key)s with info %(info)s " -"already exists" -msgstr "" - -#: ipaserver/plugins/automount.py:515 -#, python-format -msgid "key named %(key)s already exists" -msgstr "" - -#: ipaserver/plugins/automount.py:516 -#, python-format -msgid "The automount key %(key)s with info %(info)s does not exist" -msgstr "" - -#: ipaserver/plugins/automount.py:566 -#, python-format -msgid "" -"More than one entry with key %(key)s found, use --info to select specific " -"entry." -msgstr "" - -#: ipaserver/plugins/automount.py:625 -#, python-format -msgid "Added automount key \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:654 -#, python-format -msgid "Added automount indirect map \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:678 -msgid "mount point is relative to parent map, cannot begin with /" -msgstr "" - -#: ipaserver/plugins/automount.py:707 -#, python-format -msgid "Deleted automount key \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:748 -#, python-format -msgid "Modified automount key \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/automount.py:807 -#, python-format -msgid "%(count)d automount key matched" -msgid_plural "%(count)d automount keys matched" -msgstr[0] "" -msgstr[1] "" - #: ipaserver/plugins/location.py:33 msgid "" "\n" @@ -23800,553 +20321,490 @@ msgstr "" msgid "Servers in location" msgstr "" -#: ipaserver/plugins/subid.py:29 -msgid "" -"\n" -"Subordinate ids\n" -"\n" -"Manage subordinate user and group ids for users\n" -"\n" -"EXAMPLES:\n" -"\n" -" Auto-assign a subordinate id range to current user\n" -" ipa subid-generate\n" -"\n" -" Auto-assign a subordinate id range to user alice:\n" -" ipa subid-generate --owner=alice\n" -"\n" -" Find subordinate ids for user alice:\n" -" ipa subid-find --owner=alice\n" -"\n" -" Match entry by any subordinate uid in range:\n" -" ipa subid-match --subuid=2147483649\n" +#: ipaserver/plugins/netgroup.py:103 +msgid "netgroups" msgstr "" -#: ipaserver/plugins/subid.py:59 ipaserver/plugins/subid.py:62 -msgid "Subordinate id" +#: ipaserver/plugins/netgroup.py:197 +msgid "Netgroup" msgstr "" -#: ipaserver/plugins/subid.py:60 ipaserver/plugins/subid.py:61 -msgid "Subordinate ids" +#: ipaserver/plugins/netgroup.py:266 +#, python-format +msgid "Added netgroup \"%(value)s\"" msgstr "" -#: ipaserver/plugins/subid.py:144 -msgid "Subordinate id description" -msgstr "" - -#: ipaserver/plugins/subid.py:150 ipaserver/plugins/subid.py:468 -msgid "Owning user of subordinate id entry" -msgstr "" - -#: ipaserver/plugins/subid.py:157 -msgid "Start value for subordinate user ID (subuid) range" -msgstr "" - -#: ipaserver/plugins/subid.py:166 -msgid "Subordinate user ID count" -msgstr "" - -#: ipaserver/plugins/subid.py:175 -msgid "Start value for subordinate group ID (subgid) range" -msgstr "" - -#: ipaserver/plugins/subid.py:184 -msgid "Subordinate group ID count" -msgstr "" - -#: ipaserver/plugins/subid.py:213 +#: ipaserver/plugins/netgroup.py:268 #, python-format msgid "" -"%(oname)s with with name \"%(pkey)s\" or for user \"%(uid)s\" already exists." +"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " +"common namespace" msgstr "" -#: ipaserver/plugins/subid.py:246 +#: ipaserver/plugins/netgroup.py:301 #, python-format -msgid "'%(dn)s is not a valid user" +msgid "Deleted netgroup \"%(value)s\"" msgstr "" -#: ipaserver/plugins/subid.py:278 -msgid "subgidnumber must be equal to subuidnumber" -msgstr "" - -#: ipaserver/plugins/subid.py:351 -msgid "Add a new subordinate id." -msgstr "" - -#: ipaserver/plugins/subid.py:352 +#: ipaserver/plugins/netgroup.py:310 #, python-format -msgid "Added subordinate id \"%(value)s\"" +msgid "Modified netgroup \"%(value)s\"" msgstr "" -#: ipaserver/plugins/subid.py:384 -msgid "Delete a subordinate id." -msgstr "" - -#: ipaserver/plugins/subid.py:385 +#: ipaserver/plugins/netgroup.py:339 #, python-format -msgid "Deleted subordinate id \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/subid.py:393 -msgid "Modify a subordinate id." -msgstr "" - -#: ipaserver/plugins/subid.py:394 -#, python-format -msgid "Modified subordinate id \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/subid.py:405 -msgid "Search for subordinate id." -msgstr "" - -#: ipaserver/plugins/subid.py:407 -#, python-format -msgid "%(count)d subordinate id matched" -msgid_plural "%(count)d subordinate ids matched" +msgid "%(count)d netgroup matched" +msgid_plural "%(count)d netgroups matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/subid.py:440 -msgid "Display information about a subordinate id." +#: ipaserver/plugins/otp.py:7 +msgid "One time password commands" msgstr "" -#: ipaserver/plugins/subid.py:458 -msgid "Generate and auto-assign subuid and subgid range to user entry" +#: ipaserver/plugins/otpconfig.py:57 +msgid "OTP configuration options" msgstr "" -#: ipaserver/plugins/subid.py:493 -msgid "Match users by any subordinate uid in their range" +#: ipaserver/plugins/otpconfig.py:80 ipaserver/plugins/otpconfig.py:81 +msgid "OTP Configuration" msgstr "" -#: ipaserver/plugins/subid.py:500 -msgid "SubUID match" -msgstr "" - -#: ipaserver/plugins/subid.py:501 -msgid "Match value for subordinate user ID" -msgstr "" - -#: ipaserver/plugins/subid.py:542 -msgid "Subordinate id statistics" -msgstr "" - -#: ipaserver/plugins/subid.py:586 -#, python-format -msgid "%(remaining)i remaining subordinate id ranges" -msgstr "" - -#: ipaserver/plugins/caacl.py:21 +#: ipaserver/plugins/otptoken.py:42 msgid "" "\n" -"Manage CA ACL rules.\n" -"\n" -"This plugin is used to define rules governing which CAs and profiles\n" -"may be used to issue certificates to particular principals or groups\n" -"of principals.\n" -"\n" -"SUBJECT PRINCIPAL SCOPE:\n" -"\n" -"For a certificate request to be allowed, the principal(s) that are\n" -"the subject of a certificate request (not necessarily the principal\n" -"actually requesting the certificate) must be included in the scope\n" -"of a CA ACL that also includes the target CA and profile.\n" -"\n" -"Users can be included by name, group or the \"all users\" category.\n" -"Hosts can be included by name, hostgroup or the \"all hosts\"\n" -"category. Services can be included by service name or the \"all\n" -"services\" category. CA ACLs may be associated with a single type of\n" -"principal, or multiple types.\n" -"\n" -"CERTIFICATE AUTHORITY SCOPE:\n" -"\n" -"A CA ACL can be associated with one or more CAs by name, or by the\n" -"\"all CAs\" category. For compatibility reasons, a CA ACL with no CA\n" -"association implies an association with the 'ipa' CA (and only this\n" -"CA).\n" -"\n" -"PROFILE SCOPE:\n" -"\n" -"A CA ACL can be associated with one or more profiles by Profile ID.\n" -"The Profile ID is a string without spaces or punctuation starting\n" -"with a letter and followed by a sequence of letters, digits or\n" -"underscore (\"_\").\n" -"\n" -"EXAMPLES:\n" -"\n" -" Create a CA ACL \"test\" that grants all users access to the\n" -" \"UserCert\" profile on all CAs:\n" -" ipa caacl-add test --usercat=all --cacat=all\n" -" ipa caacl-add-profile test --certprofiles UserCert\n" -"\n" -" Display the properties of a named CA ACL:\n" -" ipa caacl-show test\n" -"\n" -" Create a CA ACL to let user \"alice\" use the \"DNP3\" profile on \"DNP3-CA" -"\":\n" -" ipa caacl-add alice_dnp3\n" -" ipa caacl-add-ca alice_dnp3 --cas DNP3-CA\n" -" ipa caacl-add-profile alice_dnp3 --certprofiles DNP3\n" -" ipa caacl-add-user alice_dnp3 --user=alice\n" -"\n" -" Disable a CA ACL:\n" -" ipa caacl-disable test\n" -"\n" -" Remove a CA ACL:\n" -" ipa caacl-del test\n" +"OTP Tokens\n" msgstr "" -#: ipaserver/plugins/caacl.py:87 ipaserver/plugins/caacl.py:165 -#: ipaserver/plugins/caacl.py:263 -msgid "CA ACL" -msgstr "" - -#: ipaserver/plugins/caacl.py:88 ipaserver/plugins/caacl.py:164 -msgid "CA ACLs" -msgstr "" - -#: ipaserver/plugins/caacl.py:183 -msgid "CA category" -msgstr "" - -#: ipaserver/plugins/caacl.py:184 -msgid "CA category the ACL applies to" -msgstr "" - -#: ipaserver/plugins/caacl.py:212 -msgid "CAs" -msgstr "" - -#: ipaserver/plugins/caacl.py:246 -#, python-format -msgid "Added CA ACL \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/caacl.py:258 -#, python-format -msgid "Deleted CA ACL \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/caacl.py:265 -msgid "default CA ACL can be only disabled" -msgstr "" - -#: ipaserver/plugins/caacl.py:273 -#, python-format -msgid "Modified CA ACL \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/caacl.py:285 -msgid "CA category cannot be set to 'all' while there are allowed CAs" -msgstr "" - -#: ipaserver/plugins/caacl.py:290 +#: ipaserver/plugins/otptoken.py:44 msgid "" -"profile category cannot be set to 'all' while there are allowed profiles" +"\n" +"Manage OTP tokens.\n" msgstr "" -#: ipaserver/plugins/caacl.py:312 +#: ipaserver/plugins/otptoken.py:46 +msgid "" +"\n" +"IPA supports the use of OTP tokens for multi-factor authentication. This\n" +"code enables the management of OTP tokens.\n" +msgstr "" + +#: ipaserver/plugins/otptoken.py:51 +msgid "" +"\n" +" Add a new token:\n" +" ipa otptoken-add --type=totp --owner=jdoe --desc=\"My soft token\"\n" +msgstr "" + +#: ipaserver/plugins/otptoken.py:54 +msgid "" +"\n" +" Examine the token:\n" +" ipa otptoken-show a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" + +#: ipaserver/plugins/otptoken.py:57 +msgid "" +"\n" +" Change the vendor:\n" +" ipa otptoken-mod a93db710-a31a-4639-8647-f15b2c70b78a --vendor=\"Red Hat" +"\"\n" +msgstr "" + +#: ipaserver/plugins/otptoken.py:60 +msgid "" +"\n" +" Delete a token:\n" +" ipa otptoken-del a93db710-a31a-4639-8647-f15b2c70b78a\n" +msgstr "" + +#: ipaserver/plugins/otptoken.py:137 +msgid "OTP token" +msgstr "" + +#: ipaserver/plugins/otptoken.py:138 +msgid "OTP tokens" +msgstr "" + +#: ipaserver/plugins/otptoken.py:154 +msgid "OTP Tokens" +msgstr "" + +#: ipaserver/plugins/otptoken.py:155 +msgid "OTP Token" +msgstr "" + +#: ipaserver/plugins/otptoken.py:272 +msgid "URI" +msgstr "" + +#: ipaserver/plugins/otptoken.py:281 #, python-format -msgid "%(count)d CA ACL matched" -msgid_plural "%(count)d CA ACLs matched" +msgid "Added OTP token \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/otptoken.py:335 +msgid "cannot be empty" +msgstr "" + +#: ipaserver/plugins/otptoken.py:367 +#, python-format +msgid "Deleted OTP token \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/otptoken.py:373 +#, python-format +msgid "Modified OTP token \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/otptoken.py:422 +#, python-format +msgid "%(count)d OTP token matched" +msgid_plural "%(count)d OTP tokens matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/caacl.py:325 -#, python-format -msgid "Enabled CA ACL \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/caacl.py:354 -#, python-format -msgid "Disabled CA ACL \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/caacl.py:385 -#, python-format -msgid "%i user or group added." -msgstr "" - -#: ipaserver/plugins/caacl.py:386 -#, python-format -msgid "%i users or groups added." -msgstr "" - -#: ipaserver/plugins/caacl.py:407 -#, python-format -msgid "%i user or group removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:408 -#, python-format -msgid "%i users or groups removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:417 -#, python-format -msgid "%i host or hostgroup added." -msgstr "" - -#: ipaserver/plugins/caacl.py:418 -#, python-format -msgid "%i hosts or hostgroups added." -msgstr "" - -#: ipaserver/plugins/caacl.py:439 -#, python-format -msgid "%i host or hostgroup removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:440 -#, python-format -msgid "%i hosts or hostgroups removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:448 -#, python-format -msgid "%i service added." -msgstr "" - -#: ipaserver/plugins/caacl.py:448 -#, python-format -msgid "%i services added." -msgstr "" - -#: ipaserver/plugins/caacl.py:468 -#, python-format -msgid "%i service removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:468 -#, python-format -msgid "%i services removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:488 -#, python-format -msgid "%i profile added." -msgstr "" - -#: ipaserver/plugins/caacl.py:488 -#, python-format -msgid "%i profiles added." -msgstr "" - -#: ipaserver/plugins/caacl.py:499 -msgid "profiles cannot be added when profile category='all'" -msgstr "" - -#: ipaserver/plugins/caacl.py:510 -#, python-format -msgid "%i profile removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:510 -#, python-format -msgid "%i profiles removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:515 -msgid "Add CAs to a CA ACL." -msgstr "" - -#: ipaserver/plugins/caacl.py:520 -#, python-format -msgid "%i CA added." -msgstr "" - -#: ipaserver/plugins/caacl.py:520 -#, python-format -msgid "%i CAs added." -msgstr "" - -#: ipaserver/plugins/caacl.py:531 -msgid "CAs cannot be added when CA category='all'" -msgstr "" - -#: ipaserver/plugins/caacl.py:537 -msgid "Remove CAs from a CA ACL." -msgstr "" - -#: ipaserver/plugins/caacl.py:542 -#, python-format -msgid "%i CA removed." -msgstr "" - -#: ipaserver/plugins/caacl.py:542 -#, python-format -msgid "%i CAs removed." -msgstr "" - -#: ipaserver/plugins/dnsserver.py:35 +#: ipaserver/plugins/passwd.py:40 msgid "" "\n" -"DNS server configuration\n" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:37 -msgid "" +"Set a user's password\n" "\n" -"Manipulate DNS server configuration\n" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:41 -msgid "" +"If someone other than a user changes that user's password (e.g., Helpdesk\n" +"resets it) then the password will need to be changed the first time it\n" +"is used. This is so the end-user is the only one who knows the password.\n" "\n" -" Show configuration of a specific DNS server:\n" -" ipa dnsserver-show\n" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:44 -msgid "" +"The IPA password policy controls how often a password may be changed,\n" +"what strength requirements exist, and the length of the password history.\n" "\n" -" Update configuration of a specific DNS server:\n" -" ipa dnsserver-mod\n" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:62 -msgid "DNS server" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:63 -msgid "DNS servers" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:71 -msgid "DNS Servers" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:72 -msgid "DNS Server" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:113 -msgid "DNS Server name" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:119 -msgid "SOA mname override" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:120 -msgid "SOA mname (authoritative server) override" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:126 -msgid "Forwarders" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:128 -msgid "" -"Per-server forwarders. A custom port can be specified for each forwarder " -"using a standard format \"IP_ADDRESS port PORT\"" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:138 -msgid "" -"Per-server conditional forwarding policy. Set to \"none\" to disable " -"forwarding to global forwarder for this zone. In that case, conditional zone " -"forwarders are disregarded." -msgstr "" - -#: ipaserver/plugins/dnsserver.py:154 -msgid "Modify DNS server configuration" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:157 -#, python-format -msgid "Modified DNS server \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:162 -msgid "Search for DNS servers." -msgstr "" - -#: ipaserver/plugins/dnsserver.py:166 -#, python-format -msgid "%(count)d DNS server matched" -msgid_plural "%(count)d DNS servers matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/dnsserver.py:176 -msgid "IPA DNS Server is not installed" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:183 -msgid "Display configuration of a DNS server." -msgstr "" - -#: ipaserver/plugins/dnsserver.py:193 -msgid "Add a new DNS server." -msgstr "" - -#: ipaserver/plugins/dnsserver.py:196 -#, python-format -msgid "Added new DNS server \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:205 -msgid "Delete a DNS server" -msgstr "" - -#: ipaserver/plugins/dnsserver.py:208 -#, python-format -msgid "Deleted DNS server \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/hbacsvc.py:28 -msgid "" -"\n" -"HBAC Services\n" -"\n" -"The PAM services that HBAC can control access to. The name used here\n" -"must match the service name that PAM is evaluating.\n" +"If the user authentication method is set to password+OTP, the user should\n" +"pass the --otp option when resetting the password.\n" "\n" "EXAMPLES:\n" "\n" -" Add a new HBAC service:\n" -" ipa hbacsvc-add tftp\n" +" To reset your own password:\n" +" ipa passwd\n" "\n" -" Modify an existing HBAC service:\n" -" ipa hbacsvc-mod --desc=\"TFTP service\" tftp\n" +" To reset your own password when password+OTP is set as authentication " +"method:\n" +" ipa passwd --otp\n" "\n" -" Search for HBAC services. This example will return two results, the FTP\n" -" service and the newly-added tftp service:\n" -" ipa hbacsvc-find ftp\n" +" To change another user's password:\n" +" ipa passwd tuser1\n" +msgstr "" + +#: ipaserver/plugins/passwd.py:114 +msgid "The OTP if the user has a token configured" +msgstr "" + +#: ipaserver/plugins/passwd.py:120 +#, python-format +msgid "Changed password for \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/pkinit.py:13 +msgid "" "\n" -" Delete an HBAC service:\n" -" ipa hbacsvc-del tftp\n" +"Kerberos PKINIT feature status reporting tools.\n" "\n" +"Report IPA masters on which Kerberos PKINIT is enabled or disabled\n" +"\n" +"EXAMPLES:\n" +" List PKINIT status on all masters:\n" +" ipa pkinit-status\n" +"\n" +" Check PKINIT status on `ipa.example.com`:\n" +" ipa pkinit-status --server ipa.example.com\n" +"\n" +" List all IPA masters with disabled PKINIT:\n" +" ipa pkinit-status --status='disabled'\n" +"\n" +"For more info about PKINIT support see:\n" +"\n" +"https://www.freeipa.org/page/V4/Kerberos_PKINIT\n" msgstr "" -#: ipaserver/plugins/hbacsvc.py:62 -msgid "HBAC services" +#: ipaserver/plugins/pkinit.py:39 +msgid "pkinit" msgstr "" -#: ipaserver/plugins/hbacsvc.py:96 -msgid "HBAC Service" +#: ipaserver/plugins/pkinit.py:53 +msgid "PKINIT status" msgstr "" -#: ipaserver/plugins/hbacsvc.py:119 +#: ipaserver/plugins/pkinit.py:54 +msgid "Whether PKINIT is enabled or disabled" +msgstr "" + +#: ipaserver/plugins/pkinit.py:63 +msgid "Report PKINIT status on the IPA masters" +msgstr "" + +#: ipaserver/plugins/pkinit.py:65 #, python-format -msgid "Added HBAC service \"%(value)s\"" +msgid "%(count)s server matched" +msgid_plural "%(count)s servers matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/radiusproxy.py:35 +msgid "" +"\n" +"RADIUS Proxy Servers\n" msgstr "" -#: ipaserver/plugins/hbacsvc.py:127 -#, python-format -msgid "Deleted HBAC service \"%(value)s\"" +#: ipaserver/plugins/radiusproxy.py:37 +msgid "" +"\n" +"Manage RADIUS Proxy Servers.\n" msgstr "" -#: ipaserver/plugins/hbacsvc.py:135 -#, python-format -msgid "Modified HBAC service \"%(value)s\"" +#: ipaserver/plugins/radiusproxy.py:39 +msgid "" +"\n" +"IPA supports the use of an external RADIUS proxy server for krb5 OTP\n" +"authentications. This permits a great deal of flexibility when\n" +"integrating with third-party authentication services.\n" msgstr "" -#: ipaserver/plugins/hbacsvc.py:144 +#: ipaserver/plugins/radiusproxy.py:45 +msgid "" +"\n" +" Add a new server:\n" +" ipa radiusproxy-add MyRADIUS --server=radius.example.com:1812\n" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:48 +msgid "" +"\n" +" Find all servers whose entries include the string \"example.com\":\n" +" ipa radiusproxy-find example.com\n" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:51 +msgid "" +"\n" +" Examine the configuration:\n" +" ipa radiusproxy-show MyRADIUS\n" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:54 +msgid "" +"\n" +" Change the secret:\n" +" ipa radiusproxy-mod MyRADIUS --secret\n" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:57 +msgid "" +"\n" +" Delete a configuration:\n" +" ipa radiusproxy-del MyRADIUS\n" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:68 +msgid "invalid attribute name" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:80 +msgid "invalid port number" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:98 +msgid "RADIUS proxy server" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:99 +msgid "RADIUS proxy servers" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:106 +msgid "RADIUS Servers" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:107 +msgid "RADIUS Server" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:172 #, python-format -msgid "%(count)d HBAC service matched" -msgid_plural "%(count)d HBAC services matched" +msgid "Added RADIUS proxy server \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:177 +#, python-format +msgid "Deleted RADIUS proxy server \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:182 +#, python-format +msgid "Modified RADIUS proxy server \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/radiusproxy.py:188 +#, python-format +msgid "%(count)d RADIUS proxy server matched" +msgid_plural "%(count)d RADIUS proxy servers matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/realmdomains.py:34 +msgid "" +"\n" +"Realm domains\n" +"\n" +"Manage the list of domains associated with IPA realm.\n" +"\n" +"This list is useful for Domain Controllers from other realms which have\n" +"established trust with this IPA realm. They need the information to know\n" +"which request should be forwarded to KDC of this IPA realm.\n" +"\n" +"Automatic management: a domain is automatically added to the realm domains\n" +"list when a new DNS Zone managed by IPA is created. Same applies for " +"deletion.\n" +"\n" +"Externally managed DNS: domains which are not managed in IPA server DNS\n" +"need to be manually added to the list using ipa realmdomains-mod command.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Display the current list of realm domains:\n" +" ipa realmdomains-show\n" +"\n" +" Replace the list of realm domains:\n" +" ipa realmdomains-mod --domain=example.com\n" +" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" +"\n" +" Add a domain to the list of realm domains:\n" +" ipa realmdomains-mod --add-domain=newdomain.com\n" +"\n" +" Delete a domain from the list of realm domains:\n" +" ipa realmdomains-mod --del-domain=olddomain.com\n" +msgstr "" + +#: ipaserver/plugins/realmdomains.py:85 +msgid "Realm domains" +msgstr "" + +#: ipaserver/plugins/realmdomains.py:134 +msgid "" +"\n" +" Modify realm domains\n" +"\n" +" DNS check: When manually adding a domain to the list, a DNS check is\n" +" performed by default. It ensures that the domain is associated with\n" +" the IPA realm, by checking whether the domain has a _kerberos TXT " +"record\n" +" containing the IPA realm name. This check can be skipped by specifying\n" +" --force option.\n" +"\n" +" Removal: when a realm domain which has a matching DNS zone managed by\n" +" IPA is being removed, a corresponding _kerberos TXT record in the zone " +"is\n" +" removed automatically as well. Other records in the zone or the zone\n" +" itself are not affected.\n" +" " +msgstr "" + +#: ipaserver/plugins/realmdomains.py:177 +#, python-format +msgid "" +"DNS zone for each realmdomain must contain SOA or NS records. No records " +"found for: %s" +msgstr "" + +#: ipaserver/plugins/realmdomains.py:203 +#, python-format +msgid "The following domains do not belong to this realm: %(domains)s" +msgstr "" + +#: ipaserver/plugins/realmdomains.py:218 +#, python-format +msgid "" +"The realm of the following domains could not be detected: %(domains)s. If " +"these are domains that belong to the this realm, please create a _kerberos " +"TXT record containing \"%(realm)s\" in each of them." +msgstr "" + +#: ipaserver/plugins/realmdomains.py:241 +msgid "" +"The --domain option cannot be used together with --add-domain or --del-" +"domain. Use --domain to specify the whole realm domain list explicitly, to " +"add/remove individual domains, use --add-domain/del-domain." +msgstr "" + +#: ipaserver/plugins/realmdomains.py:252 +msgid "IPA server domain cannot be omitted" +msgstr "" + +#: ipaserver/plugins/realmdomains.py:274 +msgid "IPA server domain cannot be deleted" +msgstr "" + +#: ipaserver/plugins/role.py:82 ipaserver/plugins/serverrole.py:186 +msgid "roles" +msgstr "" + +#: ipaserver/plugins/role.py:143 +msgid "Role" +msgstr "" + +#: ipaserver/plugins/role.py:164 +#, python-format +msgid "Added role \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/role.py:172 +#, python-format +msgid "Deleted role \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/role.py:180 +#, python-format +msgid "Modified role \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/role.py:189 +#, python-format +msgid "%(count)d role matched" +msgid_plural "%(count)d roles matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/selfservice.py:68 +msgid "self service permission" +msgstr "" + +#: ipaserver/plugins/selfservice.py:69 +msgid "self service permissions" +msgstr "" + +#: ipaserver/plugins/selfservice.py:70 +msgid "Self Service Permissions" +msgstr "" + +#: ipaserver/plugins/selfservice.py:71 +msgid "Self Service Permission" +msgstr "" + +#: ipaserver/plugins/selfservice.py:124 +#, python-format +msgid "Added selfservice \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/selfservice.py:146 +#, python-format +msgid "Deleted selfservice \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/selfservice.py:163 +#, python-format +msgid "Modified selfservice \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/selfservice.py:185 +#, python-format +msgid "%(count)d selfservice matched" +msgid_plural "%(count)d selfservices matched" msgstr[0] "" msgstr[1] "" @@ -24430,268 +20888,312 @@ msgstr "" msgid "Disabled SELinux User Map \"%(value)s\"" msgstr "" -#: ipaserver/plugins/netgroup.py:103 -msgid "netgroups" -msgstr "" - -#: ipaserver/plugins/netgroup.py:197 -msgid "Netgroup" -msgstr "" - -#: ipaserver/plugins/netgroup.py:266 -#, python-format -msgid "Added netgroup \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/netgroup.py:268 -#, python-format +#: ipaserver/plugins/serverrole.py:13 msgid "" -"hostgroup with name \"%s\" already exists. Hostgroups and netgroups share a " -"common namespace" +"\n" +"IPA server roles\n" msgstr "" -#: ipaserver/plugins/netgroup.py:301 -#, python-format -msgid "Deleted netgroup \"%(value)s\"" +#: ipaserver/plugins/serverrole.py:15 +msgid "" +"\n" +"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" msgstr "" -#: ipaserver/plugins/netgroup.py:310 -#, python-format -msgid "Modified netgroup \"%(value)s\"" +#: ipaserver/plugins/serverrole.py:17 +msgid "" +"\n" +"The status of a role is either enabled, configured, or absent.\n" msgstr "" -#: ipaserver/plugins/netgroup.py:339 +#: ipaserver/plugins/serverrole.py:21 +msgid "" +"\n" +" Show status of 'DNS server' role on a server:\n" +" ipa server-role-show ipa.example.com \"DNS server\"\n" +msgstr "" + +#: ipaserver/plugins/serverrole.py:24 +msgid "" +"\n" +" Show status of all roles containing 'AD' on a server:\n" +" ipa server-role-find --server ipa.example.com --role=\"AD trust " +"controller\"\n" +msgstr "" + +#: ipaserver/plugins/serverrole.py:27 +msgid "" +"\n" +" Show status of all configured roles on a server:\n" +" ipa server-role-find ipa.example.com\n" +msgstr "" + +#: ipaserver/plugins/serverrole.py:30 +msgid "" +"\n" +" Show implicit IPA master role:\n" +" ipa server-role-find --include-master\n" +msgstr "" + +#: ipaserver/plugins/serverrole.py:46 +msgid "server role" +msgstr "" + +#: ipaserver/plugins/serverrole.py:47 +msgid "server roles" +msgstr "" + +#: ipaserver/plugins/serverrole.py:51 +msgid "IPA Server Roles" +msgstr "" + +#: ipaserver/plugins/serverrole.py:52 +msgid "IPA Server Role" +msgstr "" + +#: ipaserver/plugins/serverrole.py:65 +msgid "IPA server role name" +msgstr "" + +#: ipaserver/plugins/serverrole.py:71 +msgid "Role status" +msgstr "" + +#: ipaserver/plugins/serverrole.py:72 +msgid "Status of the role" +msgstr "" + +#: ipaserver/plugins/serverrole.py:89 +msgid "Show role status on a server" +msgstr "" + +#: ipaserver/plugins/serverrole.py:113 +msgid "Find a server role on a server(s)" +msgstr "" + +#: ipaserver/plugins/serverrole.py:118 #, python-format -msgid "%(count)d netgroup matched" -msgid_plural "%(count)d netgroups matched" +msgid "%(count)s server role matched" +msgid_plural "%(count)s server roles matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/selfservice.py:68 -msgid "self service permission" +#: ipaserver/plugins/serverrole.py:139 +msgid "Include IPA master entries" msgstr "" -#: ipaserver/plugins/selfservice.py:69 -msgid "self service permissions" +#: ipaserver/plugins/serverrole.py:192 +msgid "IPA role name" msgstr "" -#: ipaserver/plugins/selfservice.py:70 -msgid "Self Service Permissions" -msgstr "" - -#: ipaserver/plugins/selfservice.py:71 -msgid "Self Service Permission" -msgstr "" - -#: ipaserver/plugins/selfservice.py:124 -#, python-format -msgid "Added selfservice \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/selfservice.py:146 -#, python-format -msgid "Deleted selfservice \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/selfservice.py:163 -#, python-format -msgid "Modified selfservice \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/selfservice.py:185 -#, python-format -msgid "%(count)d selfservice matched" -msgid_plural "%(count)d selfservices matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/sudo.py:7 -msgid "commands for controlling sudo configuration" -msgstr "" - -#: ipaserver/plugins/schema.py:24 -msgid "" -"\n" -"API Schema\n" -msgstr "" - -#: ipaserver/plugins/schema.py:26 -msgid "" -"\n" -"Provides API introspection capabilities.\n" -msgstr "" - -#: ipaserver/plugins/schema.py:30 -msgid "" -"\n" -" Show user-find details:\n" -" ipa command-show user-find\n" -msgstr "" - -#: ipaserver/plugins/schema.py:33 -msgid "" -"\n" -" Find user-find parameters:\n" -" ipa param-find user-find\n" -msgstr "" - -#: ipaserver/plugins/schema.py:54 -msgid "Documentation" -msgstr "" - -#: ipaserver/plugins/schema.py:59 -msgid "Exclude from" -msgstr "" - -#: ipaserver/plugins/schema.py:64 -msgid "Include in" -msgstr "" - -#: ipaserver/plugins/schema.py:122 ipaserver/plugins/baseldap.py:1957 -#, python-format -msgid "Results should contain primary key attribute only (\"%s\")" -msgstr "" - -#: ipaserver/plugins/schema.py:135 -msgid "Help topic" -msgstr "" - -#: ipaserver/plugins/schema.py:172 -msgid "Parameters" -msgstr "" - -#: ipaserver/plugins/schema.py:207 -msgid "Method of" -msgstr "" - -#: ipaserver/plugins/schema.py:212 -msgid "Method name" -msgstr "" - -#: ipaserver/plugins/schema.py:257 ipaserver/plugins/schema.py:333 -#: ipaserver/plugins/schema.py:424 ipaserver/plugins/schema.py:661 -#: ipaserver/plugins/schema.py:754 ipaserver/plugins/baseldap.py:660 -#, python-format -msgid "%(pkey)s: %(oname)s not found" -msgstr "" - -#: ipaserver/plugins/schema.py:270 -msgid "Display information about a command." -msgstr "" - -#: ipaserver/plugins/schema.py:275 -msgid "Search for commands." -msgstr "" - -#: ipaserver/plugins/schema.py:280 -msgid "Return command defaults" -msgstr "" - -#: ipaserver/plugins/schema.py:291 +#: ipaserver/plugins/serverroles.py:84 #, python-brace-format -msgid "{oname}: {command_name} not found" +msgid "{role}: role not found" msgstr "" -#: ipaserver/plugins/schema.py:344 -msgid "Display information about a class." +#: ipaserver/plugins/serverroles.py:178 +#, python-brace-format +msgid "{attr}: no such attribute" msgstr "" -#: ipaserver/plugins/schema.py:349 -msgid "Search for classes." +#: ipaserver/plugins/service.py:60 +msgid "" +"\n" +"Services\n" +"\n" +"A IPA service represents a service that runs on a host. The IPA service\n" +"record can store a Kerberos principal, an SSL certificate, or both.\n" +"\n" +"An IPA service can be managed directly from a machine, provided that\n" +"machine has been given the correct permission. This is true even for\n" +"machines other than the one the service is associated with. For example,\n" +"requesting an SSL certificate using the host service principal credentials\n" +"of the host. To manage a service using host credentials you need to\n" +"kinit as the host:\n" +"\n" +" # kinit -kt /etc/krb5.keytab host/ipa.example.com@EXAMPLE.COM\n" +"\n" +"Adding an IPA service allows the associated service to request an SSL\n" +"certificate or keytab, but this is performed as a separate step; they\n" +"are not produced as a result of adding the service.\n" +"\n" +"Only the public aspect of a certificate is stored in a service record;\n" +"the private key is not stored.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Add a new IPA service:\n" +" ipa service-add HTTP/web.example.com\n" +"\n" +" Allow a host to manage an IPA service certificate:\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Override a default list of supported PAC types for the service:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" +"\n" +" A typical use case where overriding the PAC type is needed is NFS.\n" +" Currently the related code in the Linux kernel can only handle Kerberos\n" +" tickets up to a maximal size. Since the PAC data can become quite large " +"it\n" +" is recommended to set --pac-type=NONE for NFS services.\n" +"\n" +" Delete an IPA service:\n" +" ipa service-del HTTP/web.example.com\n" +"\n" +" Find all IPA services associated with a host:\n" +" ipa service-find web.example.com\n" +"\n" +" Find all HTTP services:\n" +" ipa service-find HTTP\n" +"\n" +" Disable the service Kerberos key and SSL certificate:\n" +" ipa service-disable HTTP/web.example.com\n" +"\n" +" Request a certificate for an IPA service:\n" +" ipa cert-request --principal=HTTP/web.example.com example.csr\n" msgstr "" -#: ipaserver/plugins/schema.py:436 -msgid "Display information about a help topic." +#: ipaserver/plugins/service.py:113 +msgid "" +"\n" +" Allow user to create a keytab:\n" +" ipa service-allow-create-keytab HTTP/web.example.com --users=tuser1\n" msgstr "" -#: ipaserver/plugins/schema.py:441 -msgid "Search for help topics." +#: ipaserver/plugins/service.py:116 +msgid "" +"\n" +" Generate and retrieve a keytab for an IPA service:\n" +" ipa-getkeytab -s ipa.example.com -p HTTP/web.example.com -k /etc/httpd/" +"httpd.keytab\n" +"\n" msgstr "" -#: ipaserver/plugins/schema.py:453 -msgid "Required" +#: ipaserver/plugins/service.py:180 +msgid "Trusted to authenticate as user" msgstr "" -#: ipaserver/plugins/schema.py:458 -msgid "Multi-value" +#: ipaserver/plugins/service.py:181 +msgid "The service is allowed to authenticate on behalf of a client" msgstr "" -#: ipaserver/plugins/schema.py:508 -msgid "Always ask" -msgstr "" - -#: ipaserver/plugins/schema.py:513 -msgid "CLI metavar" -msgstr "" - -#: ipaserver/plugins/schema.py:518 -msgid "CLI name" -msgstr "" - -#: ipaserver/plugins/schema.py:523 -msgid "Confirm (password)" -msgstr "" - -#: ipaserver/plugins/schema.py:528 -msgid "Default" -msgstr "" - -#: ipaserver/plugins/schema.py:533 -msgid "Default from" -msgstr "" - -#: ipaserver/plugins/schema.py:538 -msgid "Label" -msgstr "" - -#: ipaserver/plugins/schema.py:543 -msgid "Convert on server" -msgstr "" - -#: ipaserver/plugins/schema.py:548 -msgid "Option group" -msgstr "" - -#: ipaserver/plugins/schema.py:553 -msgid "Sensitive" -msgstr "" - -#: ipaserver/plugins/schema.py:558 -msgid "Positional argument" -msgstr "" - -#: ipaserver/plugins/schema.py:643 +#: ipaserver/plugins/service.py:226 #, python-format -msgid "%(metaobject)s: %(oname)s not found" +msgid "authentication indicators not allowed in service \"%s\"" msgstr "" -#: ipaserver/plugins/schema.py:682 -msgid "Display information about a command parameter." +#: ipaserver/plugins/service.py:242 +msgid "Malformed principal" msgstr "" -#: ipaserver/plugins/schema.py:687 -msgid "Search command parameters." +#: ipaserver/plugins/service.py:321 +msgid "{} is required by the IPA master" msgstr "" -#: ipaserver/plugins/schema.py:744 +#: ipaserver/plugins/service.py:395 +msgid "service" +msgstr "" + +#: ipaserver/plugins/service.py:396 +msgid "services" +msgstr "" + +#: ipaserver/plugins/service.py:512 +msgid "Service principal alias" +msgstr "" + +#: ipaserver/plugins/service.py:520 +msgid "Base-64 encoded service certificate" +msgstr "" + +#: ipaserver/plugins/service.py:596 +msgid "NONE value cannot be combined with other PAC types" +msgstr "" + +#: ipaserver/plugins/service.py:648 +msgid "Add a new IPA service." +msgstr "" + +#: ipaserver/plugins/service.py:650 ipaserver/plugins/service.py:719 #, python-format -msgid "%(command_name)s: %(oname)s not found" +msgid "Added service \"%(value)s\"" msgstr "" -#: ipaserver/plugins/schema.py:769 -msgid "Display information about a command output." +#: ipaserver/plugins/service.py:656 +msgid "force principal name even if host not in DNS" msgstr "" -#: ipaserver/plugins/schema.py:774 -msgid "Search for command outputs." +#: ipaserver/plugins/service.py:659 +msgid "Skip host check" msgstr "" -#: ipaserver/plugins/schema.py:779 -msgid "Store and provide schema for commands and topics" +#: ipaserver/plugins/service.py:660 +msgid "" +"force service to be created even when host object does not exist to manage it" msgstr "" -#: ipaserver/plugins/schema.py:785 -msgid "Fingerprint of schema cached by client" +#: ipaserver/plugins/service.py:678 ipaserver/plugins/service.py:787 +#, python-format +msgid "The host '%s' does not exist to add a service to." +msgstr "" + +#: ipaserver/plugins/service.py:717 +msgid "Add a new SMB service." +msgstr "" + +#: ipaserver/plugins/service.py:733 +msgid "SMB service NetBIOS name" +msgstr "" + +#: ipaserver/plugins/service.py:847 +#, python-format +msgid "Deleted service \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/service.py:867 +#, python-format +msgid "Modified service \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/service.py:918 +#, python-format +msgid "%(count)d service matched" +msgid_plural "%(count)d services matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/service.py:1117 +#, python-format +msgid "Disabled service \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/service.py:1158 +#, python-format +msgid "Added certificates to service principal \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/service.py:1165 +#, python-format +msgid "Removed certificates from service principal \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/service.py:1181 +msgid "Add new principal alias to a service" +msgstr "" + +#: ipaserver/plugins/service.py:1182 +#, python-format +msgid "Added new aliases to the service principal \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/service.py:1193 +msgid "Remove principal alias from a service" +msgstr "" + +#: ipaserver/plugins/service.py:1194 +#, python-format +msgid "Removed aliases to the service principal \"%(value)s\"" msgstr "" #: ipaserver/plugins/servicedelegation.py:26 @@ -24786,7 +21288,7 @@ msgstr "" #: ipaserver/plugins/servicedelegation.py:213 #: ipaserver/plugins/servicedelegation.py:303 -#: ipaserver/plugins/baseldap.py:1716 +#: ipaserver/plugins/baseldap.py:1720 #, python-format msgid "member %s" msgstr "" @@ -24966,6 +21468,13 @@ msgstr "" msgid "Modified stage user \"%(value)s\"" msgstr "" +#: ipaserver/plugins/stageuser.py:471 ipaserver/plugins/user.py:871 +#, python-format +msgid "%(count)d user matched" +msgid_plural "%(count)d users matched" +msgstr[0] "" +msgstr[1] "" + #: ipaserver/plugins/stageuser.py:495 #, python-format msgid "Activate a stage user \"%(value)s\"" @@ -25034,6 +21543,146 @@ msgstr "" msgid "Remove one or more certificate mappings from the stage user entry." msgstr "" +#: ipaserver/plugins/subid.py:29 +msgid "" +"\n" +"Subordinate ids\n" +"\n" +"Manage subordinate user and group ids for users\n" +"\n" +"EXAMPLES:\n" +"\n" +" Auto-assign a subordinate id range to current user\n" +" ipa subid-generate\n" +"\n" +" Auto-assign a subordinate id range to user alice:\n" +" ipa subid-generate --owner=alice\n" +"\n" +" Find subordinate ids for user alice:\n" +" ipa subid-find --owner=alice\n" +"\n" +" Match entry by any subordinate uid in range:\n" +" ipa subid-match --subuid=2147483649\n" +msgstr "" + +#: ipaserver/plugins/subid.py:59 ipaserver/plugins/subid.py:62 +msgid "Subordinate id" +msgstr "" + +#: ipaserver/plugins/subid.py:60 ipaserver/plugins/subid.py:61 +msgid "Subordinate ids" +msgstr "" + +#: ipaserver/plugins/subid.py:144 +msgid "Subordinate id description" +msgstr "" + +#: ipaserver/plugins/subid.py:150 ipaserver/plugins/subid.py:468 +msgid "Owning user of subordinate id entry" +msgstr "" + +#: ipaserver/plugins/subid.py:157 +msgid "Start value for subordinate user ID (subuid) range" +msgstr "" + +#: ipaserver/plugins/subid.py:166 +msgid "Subordinate user ID count" +msgstr "" + +#: ipaserver/plugins/subid.py:175 +msgid "Start value for subordinate group ID (subgid) range" +msgstr "" + +#: ipaserver/plugins/subid.py:184 +msgid "Subordinate group ID count" +msgstr "" + +#: ipaserver/plugins/subid.py:213 +#, python-format +msgid "" +"%(oname)s with with name \"%(pkey)s\" or for user \"%(uid)s\" already exists." +msgstr "" + +#: ipaserver/plugins/subid.py:246 +#, python-format +msgid "'%(dn)s is not a valid user" +msgstr "" + +#: ipaserver/plugins/subid.py:278 +msgid "subgidnumber must be equal to subuidnumber" +msgstr "" + +#: ipaserver/plugins/subid.py:351 +msgid "Add a new subordinate id." +msgstr "" + +#: ipaserver/plugins/subid.py:352 +#, python-format +msgid "Added subordinate id \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/subid.py:384 +msgid "Delete a subordinate id." +msgstr "" + +#: ipaserver/plugins/subid.py:385 +#, python-format +msgid "Deleted subordinate id \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/subid.py:393 +msgid "Modify a subordinate id." +msgstr "" + +#: ipaserver/plugins/subid.py:394 +#, python-format +msgid "Modified subordinate id \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/subid.py:405 +msgid "Search for subordinate id." +msgstr "" + +#: ipaserver/plugins/subid.py:407 +#, python-format +msgid "%(count)d subordinate id matched" +msgid_plural "%(count)d subordinate ids matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/subid.py:440 +msgid "Display information about a subordinate id." +msgstr "" + +#: ipaserver/plugins/subid.py:458 +msgid "Generate and auto-assign subuid and subgid range to user entry" +msgstr "" + +#: ipaserver/plugins/subid.py:493 +msgid "Match users by any subordinate uid in their range" +msgstr "" + +#: ipaserver/plugins/subid.py:500 +msgid "SubUID match" +msgstr "" + +#: ipaserver/plugins/subid.py:501 +msgid "Match value for subordinate user ID" +msgstr "" + +#: ipaserver/plugins/subid.py:542 +msgid "Subordinate id statistics" +msgstr "" + +#: ipaserver/plugins/subid.py:586 +#, python-format +msgid "%(remaining)i remaining subordinate id ranges" +msgstr "" + +#: ipaserver/plugins/sudo.py:7 +msgid "commands for controlling sudo configuration" +msgstr "" + #: ipaserver/plugins/sudocmd.py:33 msgid "" "\n" @@ -25090,575 +21739,4329 @@ msgid_plural "%(count)d Sudo Commands matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/trust.py:83 +#: ipaserver/plugins/sudocmdgroup.py:34 msgid "" "\n" -"Cross-realm trusts\n" +"Groups of Sudo Commands\n" "\n" -"Manage trust relationship between IPA and Active Directory domains.\n" -"\n" -"In order to allow users from a remote domain to access resources in IPA " -"domain,\n" -"trust relationship needs to be established. Currently IPA supports only " -"trusts\n" -"between IPA and Active Directory domains under control of Windows Server " -"2008\n" -"or later, with functional level 2008 or later.\n" -"\n" -"Please note that DNS on both IPA and Active Directory domain sides should " -"be\n" -"configured properly to discover each other. Trust relationship relies on\n" -"ability to discover special resources in the other domain via DNS records.\n" -"\n" -"Examples:\n" -"\n" -"1. Establish cross-realm trust with Active Directory using AD administrator\n" -" credentials:\n" -"\n" -" ipa trust-add --type=ad --admin --password\n" -"\n" -"2. List all existing trust relationships:\n" -"\n" -" ipa trust-find\n" -"\n" -"3. Show details of the specific trust relationship:\n" -"\n" -" ipa trust-show \n" -"\n" -"4. Delete existing trust relationship:\n" -"\n" -" ipa trust-del \n" -"\n" -"Once trust relationship is established, remote users will need to be mapped\n" -"to local POSIX groups in order to actually use IPA resources. The mapping\n" -"should be done via use of external membership of non-POSIX group and then\n" -"this group should be included into one of local POSIX groups.\n" -"\n" -"Example:\n" -"\n" -"1. Create group for the trusted domain admins' mapping and their local " -"POSIX\n" -"group:\n" -"\n" -" ipa group-add --desc=' admins external map' " -"ad_admins_external --external\n" -" ipa group-add --desc=' admins' ad_admins\n" -"\n" -"2. Add security identifier of Domain Admins of the to the\n" -" ad_admins_external group:\n" -"\n" -" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" -"\n" -"3. Allow members of ad_admins_external group to be associated with\n" -" ad_admins POSIX group:\n" -"\n" -" ipa group-add-member ad_admins --groups ad_admins_external\n" -"\n" -"4. List members of external members of ad_admins_external group to see\n" -" their SIDs:\n" -"\n" -" ipa group-show ad_admins_external\n" -"\n" -"\n" -"GLOBAL TRUST CONFIGURATION\n" -"\n" -"When IPA AD trust subpackage is installed and ipa-adtrust-install is run, a\n" -"local domain configuration (SID, GUID, NetBIOS name) is generated. These\n" -"identifiers are then used when communicating with a trusted domain of the\n" -"particular type.\n" -"\n" -"1. Show global trust configuration for Active Directory type of trusts:\n" -"\n" -" ipa trustconfig-show --type ad\n" -"\n" -"2. Modify global configuration for all trusts of Active Directory type and " -"set\n" -" a different fallback primary group (fallback primary group GID is used as " -"a\n" -" primary user GID if user authenticating to IPA domain does not have any\n" -" other primary GID already set):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"another AD group" -"\"\n" -"\n" -"3. Change primary fallback group back to default hidden group (any group " -"with\n" -" posixGroup object class is allowed):\n" -"\n" -" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" -"\"\n" -msgstr "" - -#: ipaserver/plugins/trust.py:226 -#, python-format -msgid "" -" Alternatively, following servers are capable of running this command: " -"%(masters)s" -msgstr "" - -#: ipaserver/plugins/trust.py:239 ipaserver/plugins/trust.py:871 -#: ipaserver/plugins/trust.py:887 ipaserver/plugins/trust.py:908 -#: ipaserver/plugins/trust.py:918 ipaserver/plugins/trust.py:1071 -#: ipaserver/plugins/trust.py:1106 -msgid "AD Trust setup" -msgstr "" - -#: ipaserver/plugins/trust.py:250 -msgid "" -"Cannot perform the selected command without Samba 4 support installed. Make " -"sure you have installed server-trust-ad sub-package of IPA." -msgstr "" - -#: ipaserver/plugins/trust.py:260 -msgid "" -"Cannot perform the selected command without Samba 4 instance configured on " -"this machine. Make sure you have run ipa-adtrust-install on this server." -msgstr "" - -#: ipaserver/plugins/trust.py:474 -msgid "" -"Fetching domains from trusted forest failed. See details in the error_log" -msgstr "" - -#: ipaserver/plugins/trust.py:487 -msgid "trust" -msgstr "" - -#: ipaserver/plugins/trust.py:488 -msgid "trusts" -msgstr "" - -#: ipaserver/plugins/trust.py:531 -msgid "Trust" -msgstr "" - -#: ipaserver/plugins/trust.py:549 -msgid "SID blocklist incoming" -msgstr "" - -#: ipaserver/plugins/trust.py:553 -msgid "SID blocklist outgoing" -msgstr "" - -#: ipaserver/plugins/trust.py:569 -msgid "UPN suffixes" -msgstr "" - -#: ipaserver/plugins/trust.py:586 -#, python-brace-format -msgid "invalid SID: {SID}" -msgstr "" - -#: ipaserver/plugins/trust.py:654 -msgid "" -"\n" -"Add new trust to use.\n" -"\n" -"This command establishes trust relationship to another domain\n" -"which becomes 'trusted'. As result, users of the trusted domain\n" -"may access resources of this domain.\n" -"\n" -"Only trusts to Active Directory domains are supported right now.\n" -"\n" -"The command can be safely run multiple times against the same domain,\n" -"this will cause change to trust relationship credentials on both\n" -"sides.\n" -"\n" -"Note that if the command was previously run with a specific range type,\n" -"or with automatic detection of the range type, and you want to configure a\n" -"different range type, you may need to delete first the ID range using\n" -"ipa idrange-del before retrying the command with the desired range type.\n" -" " -msgstr "" - -#: ipaserver/plugins/trust.py:712 -msgid "Type of trusted domain ID range, one of allowed values" -msgstr "" - -#: ipaserver/plugins/trust.py:724 -msgid "External trust" -msgstr "" - -#: ipaserver/plugins/trust.py:726 -msgid "" -"Establish external trust to a domain in another forest. The trust is not " -"transitive beyond the domain." -msgstr "" - -#: ipaserver/plugins/trust.py:732 -#, python-format -msgid "Added Active Directory trust for realm \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/trust.py:733 -#, python-format -msgid "Re-established trust to domain \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/trust.py:829 -msgid "missing base_id" -msgstr "" - -#: ipaserver/plugins/trust.py:831 -msgid "pysss_murmur is not available on the server and no base-id is given." -msgstr "" - -#: ipaserver/plugins/trust.py:841 -msgid "trust type" -msgstr "" - -#: ipaserver/plugins/trust.py:842 -msgid "only \"ad\" is supported" -msgstr "" - -#: ipaserver/plugins/trust.py:848 ipaserver/plugins/certmap.py:141 -#: ipaserver/plugins/certmap.py:148 ipaserver/plugins/certmap.py:175 -msgid "domain" -msgstr "" - -#: ipaserver/plugins/trust.py:849 -msgid "" -"Cannot establish a trust to AD deployed in the same domain as IPA. Such " -"setup is not supported." -msgstr "" - -#: ipaserver/plugins/trust.py:862 -msgid "Realm-domain mismatch" -msgstr "" - -#: ipaserver/plugins/trust.py:863 -msgid "" -"To establish trust with Active Directory, the domain name and the realm name " -"of the IPA server must match" -msgstr "" - -#: ipaserver/plugins/trust.py:889 -#, python-format -msgid "" -"Trusted domain %(domain)s is included among IPA realm domains. It needs to " -"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" -"del-domain\" command." -msgstr "" - -#: ipaserver/plugins/trust.py:910 -msgid "Trusted domain and administrator account use different realms" -msgstr "" - -#: ipaserver/plugins/trust.py:919 -msgid "Realm administrator password should be specified" -msgstr "" - -#: ipaserver/plugins/trust.py:940 -msgid "id range type" -msgstr "" - -#: ipaserver/plugins/trust.py:942 -msgid "" -"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" -"type when adding an AD trust." -msgstr "" - -#: ipaserver/plugins/trust.py:952 -msgid "id range" -msgstr "" - -#: ipaserver/plugins/trust.py:954 -msgid "" -"An id range already exists for this trust. You should either delete the old " -"range, or exclude --base-id/--range-size options from the command." -msgstr "" - -#: ipaserver/plugins/trust.py:976 -msgid "range exists" -msgstr "" - -#: ipaserver/plugins/trust.py:978 -msgid "" -"ID range with the same name but different domain SID already exists. The ID " -"range for the new trusted domain must be created manually." -msgstr "" - -#: ipaserver/plugins/trust.py:986 -msgid "range type change" -msgstr "" - -#: ipaserver/plugins/trust.py:987 -msgid "" -"ID range for the trusted domain already exists, but it has a different type. " -"Please remove the old range manually, or do not enforce type via --range-" -"type option." -msgstr "" - -#: ipaserver/plugins/trust.py:1025 -#, python-brace-format -msgid "Unable to resolve domain controller for {domain} domain. " -msgstr "" - -#: ipaserver/plugins/trust.py:1039 -msgid "" -"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " -"incorrect host?" -msgstr "" - -#: ipaserver/plugins/trust.py:1045 -#, python-brace-format -msgid "" -"IPA manages DNS, please verify your DNS configuration and make sure that " -"service records of the '{domain}' domain can be resolved. Examples how to " -"configure DNS with CLI commands or the Web UI can be found in the " -"documentation. " -msgstr "" - -#: ipaserver/plugins/trust.py:1057 -#, python-brace-format -msgid "" -"Since IPA does not manage DNS records, ensure DNS is configured to resolve " -"'{domain}' domain from IPA hosts and back." -msgstr "" - -#: ipaserver/plugins/trust.py:1072 -msgid "Unable to verify write permissions to the AD" -msgstr "" - -#: ipaserver/plugins/trust.py:1107 -msgid "Not enough arguments specified to perform trust setup" -msgstr "" - -#: ipaserver/plugins/trust.py:1115 -#, python-format -msgid "Deleted trust \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/trust.py:1120 -msgid "" -"\n" -" Modify a trust (for future use).\n" -"\n" -" Currently only the default option to modify the LDAP attributes is\n" -" available. More specific options will be added in coming releases.\n" -" " -msgstr "" - -#: ipaserver/plugins/trust.py:1127 -#, python-format -msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" -msgstr "" - -#: ipaserver/plugins/trust.py:1145 -#, python-format -msgid "%(count)d trust matched" -msgid_plural "%(count)d trusts matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/trust.py:1234 -msgid "trust configuration" -msgstr "" - -#: ipaserver/plugins/trust.py:1240 ipaserver/plugins/trust.py:1241 -msgid "Global Trust Configuration" -msgstr "" - -#: ipaserver/plugins/trust.py:1266 -msgid "IPA AD trust agents" -msgstr "" - -#: ipaserver/plugins/trust.py:1267 -msgid "IPA servers configured as AD trust agents" -msgstr "" - -#: ipaserver/plugins/trust.py:1272 -msgid "IPA AD trust controllers" -msgstr "" - -#: ipaserver/plugins/trust.py:1273 -msgid "IPA servers configured as AD trust controllers" -msgstr "" - -#: ipaserver/plugins/trust.py:1287 -msgid "unsupported trust type" -msgstr "" - -#: ipaserver/plugins/trust.py:1354 -#, python-format -msgid "Modified \"%(value)s\" trust configuration" -msgstr "" - -#: ipaserver/plugins/trust.py:1419 -msgid "SID" -msgstr "" - -#: ipaserver/plugins/trust.py:1545 -msgid "sidgen_was_run" -msgstr "" - -#: ipaserver/plugins/trust.py:1547 -msgid "" -"This command relies on the existence of the \"editors\" group, but this " -"group was not found." -msgstr "" - -#: ipaserver/plugins/trust.py:1566 -msgid "trust domain" -msgstr "" - -#: ipaserver/plugins/trust.py:1567 -msgid "trust domains" -msgstr "" - -#: ipaserver/plugins/trust.py:1575 -msgid "Trusted domains" -msgstr "" - -#: ipaserver/plugins/trust.py:1576 -msgid "Trusted domain" -msgstr "" - -#: ipaserver/plugins/trust.py:1590 -msgid "Domain enabled" -msgstr "" - -#: ipaserver/plugins/trust.py:1662 -#, python-format -msgid "Removed information about the trusted domain \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/trust.py:1680 -msgid "" -"cannot delete root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "" - -#: ipaserver/plugins/trust.py:1831 -msgid "" -"List of trust domains successfully refreshed. Use trustdomain-find command " -"to list them." -msgstr "" - -#: ipaserver/plugins/trust.py:1839 -msgid "Configure this server as a trust agent." -msgstr "" - -#: ipaserver/plugins/trust.py:1855 -msgid "Enable support for trusted domains for old clients" -msgstr "" - -#: ipaserver/plugins/trust.py:1871 -msgid "not allowed to remotely add agent" -msgstr "" - -#: ipaserver/plugins/trust.py:1907 -#, python-format -msgid "Enabled trust domain \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/trust.py:1916 -msgid "Root domain of the trust is always enabled for the existing trust" -msgstr "" - -#: ipaserver/plugins/trust.py:1949 -#, python-format -msgid "Disabled trust domain \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/trust.py:1958 -msgid "" -"cannot disable root domain of the trust, use trust-del to delete the trust " -"itself" -msgstr "" - -#: ipaserver/plugins/realmdomains.py:34 -msgid "" -"\n" -"Realm domains\n" -"\n" -"Manage the list of domains associated with IPA realm.\n" -"\n" -"This list is useful for Domain Controllers from other realms which have\n" -"established trust with this IPA realm. They need the information to know\n" -"which request should be forwarded to KDC of this IPA realm.\n" -"\n" -"Automatic management: a domain is automatically added to the realm domains\n" -"list when a new DNS Zone managed by IPA is created. Same applies for " -"deletion.\n" -"\n" -"Externally managed DNS: domains which are not managed in IPA server DNS\n" -"need to be manually added to the list using ipa realmdomains-mod command.\n" +"Manage groups of Sudo Commands.\n" "\n" "EXAMPLES:\n" "\n" -" Display the current list of realm domains:\n" -" ipa realmdomains-show\n" +" Add a new Sudo Command Group:\n" +" ipa sudocmdgroup-add --desc='administrators commands' admincmds\n" "\n" -" Replace the list of realm domains:\n" -" ipa realmdomains-mod --domain=example.com\n" -" ipa realmdomains-mod --domain={example1.com,example2.com,example3.com}\n" +" Remove a Sudo Command Group:\n" +" ipa sudocmdgroup-del admincmds\n" "\n" -" Add a domain to the list of realm domains:\n" -" ipa realmdomains-mod --add-domain=newdomain.com\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" "\n" -" Delete a domain from the list of realm domains:\n" -" ipa realmdomains-mod --del-domain=olddomain.com\n" +" Manage Sudo Command Group membership, commands:\n" +" ipa sudocmdgroup-remove-member --sudocmds=/usr/bin/less admincmds\n" +"\n" +" Show a Sudo Command Group:\n" +" ipa sudocmdgroup-show admincmds\n" msgstr "" -#: ipaserver/plugins/realmdomains.py:85 -msgid "Realm domains" +#: ipaserver/plugins/sudocmdgroup.py:67 +msgid "sudo command group" msgstr "" -#: ipaserver/plugins/realmdomains.py:134 +#: ipaserver/plugins/sudocmdgroup.py:68 +msgid "sudo command groups" +msgstr "" + +#: ipaserver/plugins/sudocmdgroup.py:149 +#, python-format +msgid "Added Sudo Command Group \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/sudocmdgroup.py:157 +#, python-format +msgid "Deleted Sudo Command Group \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/sudocmdgroup.py:165 +#, python-format +msgid "Modified Sudo Command Group \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/sudocmdgroup.py:174 +#, python-format +msgid "%(count)d Sudo Command Group matched" +msgid_plural "%(count)d Sudo Command Groups matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/topology.py:24 msgid "" "\n" -" Modify realm domains\n" +"Topology\n" "\n" -" DNS check: When manually adding a domain to the list, a DNS check is\n" -" performed by default. It ensures that the domain is associated with\n" -" the IPA realm, by checking whether the domain has a _kerberos TXT " -"record\n" -" containing the IPA realm name. This check can be skipped by specifying\n" -" --force option.\n" +"Management of a replication topology at domain level 1.\n" +msgstr "" + +#: ipaserver/plugins/topology.py:28 +msgid "" "\n" -" Removal: when a realm domain which has a matching DNS zone managed by\n" -" IPA is being removed, a corresponding _kerberos TXT record in the zone " +"IPA server's data is stored in LDAP server in two suffixes:\n" +"* domain suffix, e.g., 'dc=example,dc=com', contains all domain related " +"data\n" +"* ca suffix, 'o=ipaca', is present only on server with CA installed. It\n" +" contains data for Certificate Server component\n" +msgstr "" + +#: ipaserver/plugins/topology.py:33 +msgid "" +"\n" +"Data stored on IPA servers is replicated to other IPA servers. The way it " "is\n" -" removed automatically as well. Other records in the zone or the zone\n" -" itself are not affected.\n" +"replicated is defined by replication agreements. Replication agreements " +"needs\n" +"to be set for both suffixes separately. On domain level 0 they are managed\n" +"using ipa-replica-manage and ipa-csreplica-manage tools. With domain level " +"1\n" +"they are managed centrally using `ipa topology*` commands.\n" +msgstr "" + +#: ipaserver/plugins/topology.py:39 +msgid "" +"\n" +"Agreements are represented by topology segments. By default topology " +"segment\n" +"represents 2 replication agreements - one for each direction, e.g., A to B " +"and\n" +"B to A. Creation of unidirectional segments is not allowed.\n" +msgstr "" + +#: ipaserver/plugins/topology.py:43 +msgid "" +"\n" +"To verify that no server is disconnected in the topology of the given " +"suffix,\n" +"use:\n" +" ipa topologysuffix-verify $suffix\n" +msgstr "" + +#: ipaserver/plugins/topology.py:47 +msgid "" +"\n" +"\n" +"Examples:\n" +" Find all IPA servers:\n" +" ipa server-find\n" +msgstr "" + +#: ipaserver/plugins/topology.py:52 +msgid "" +"\n" +" Find all suffixes:\n" +" ipa topologysuffix-find\n" +msgstr "" + +#: ipaserver/plugins/topology.py:55 +msgid "" +"\n" +" Add topology segment to 'domain' suffix:\n" +" ipa topologysegment-add domain --left IPA_SERVER_A --right IPA_SERVER_B\n" +msgstr "" + +#: ipaserver/plugins/topology.py:58 +msgid "" +"\n" +" Add topology segment to 'ca' suffix:\n" +" ipa topologysegment-add ca --left IPA_SERVER_A --right IPA_SERVER_B\n" +msgstr "" + +#: ipaserver/plugins/topology.py:61 +msgid "" +"\n" +" List all topology segments in 'domain' suffix:\n" +" ipa topologysegment-find domain\n" +msgstr "" + +#: ipaserver/plugins/topology.py:64 +msgid "" +"\n" +" List all topology segments in 'ca' suffix:\n" +" ipa topologysegment-find ca\n" +msgstr "" + +#: ipaserver/plugins/topology.py:67 +msgid "" +"\n" +" Delete topology segment in 'domain' suffix:\n" +" ipa topologysegment-del domain segment_name\n" +msgstr "" + +#: ipaserver/plugins/topology.py:70 +msgid "" +"\n" +" Delete topology segment in 'ca' suffix:\n" +" ipa topologysegment-del ca segment_name\n" +msgstr "" + +#: ipaserver/plugins/topology.py:73 +msgid "" +"\n" +" Verify topology of 'domain' suffix:\n" +" ipa topologysuffix-verify domain\n" +msgstr "" + +#: ipaserver/plugins/topology.py:76 +msgid "" +"\n" +" Verify topology of 'ca' suffix:\n" +" ipa topologysuffix-verify ca\n" +msgstr "" + +#: ipaserver/plugins/topology.py:92 +#, python-brace-format +msgid "Topology management requires minimum domain level {0} " +msgstr "" + +#: ipaserver/plugins/topology.py:104 +msgid "segment" +msgstr "" + +#: ipaserver/plugins/topology.py:105 +msgid "segments" +msgstr "" + +#: ipaserver/plugins/topology.py:119 +msgid "Topology Segments" +msgstr "" + +#: ipaserver/plugins/topology.py:120 +msgid "Topology Segment" +msgstr "" + +#: ipaserver/plugins/topology.py:226 +#, python-format +msgid "left node is not a topology node: %(leftnode)s" +msgstr "" + +#: ipaserver/plugins/topology.py:233 +#, python-format +msgid "right node is not a topology node: %(rightnode)s" +msgstr "" + +#: ipaserver/plugins/topology.py:250 +msgid "left node and right node must not be the same" +msgstr "" + +#: ipaserver/plugins/topology.py:261 +#, python-brace-format +msgid "left node ({host}) does not support suffix '{suff}'" +msgstr "" + +#: ipaserver/plugins/topology.py:269 +#, python-brace-format +msgid "right node ({host}) does not support suffix '{suff}'" +msgstr "" + +#: ipaserver/plugins/topology.py:280 +#, python-format +msgid "%(count)d segment matched" +msgid_plural "%(count)d segments matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/topology.py:289 +#, python-format +msgid "Added segment \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/topology.py:302 +#, python-format +msgid "Deleted segment \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/topology.py:314 +#, python-format +msgid "Modified segment \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/topology.py:329 +#, python-format +msgid "%(value)s" +msgstr "" + +#: ipaserver/plugins/topology.py:365 +msgid "left or right node has to be specified" +msgstr "" + +#: ipaserver/plugins/topology.py:370 +msgid "only one node can be specified" +msgstr "" + +#: ipaserver/plugins/topology.py:374 +#, python-format +msgid "Replication refresh for segment: \"%(pkey)s\" requested." +msgstr "" + +#: ipaserver/plugins/topology.py:377 +#, python-format +msgid "Stopping of replication refresh for segment: \"%(pkey)s\" requested." +msgstr "" + +#: ipaserver/plugins/topology.py:408 +msgid "suffixes" +msgstr "" + +#: ipaserver/plugins/topology.py:412 +msgid "Topology suffixes" +msgstr "" + +#: ipaserver/plugins/topology.py:413 +msgid "Topology suffix" +msgstr "" + +#: ipaserver/plugins/topology.py:435 +#, python-format +msgid "%(count)d topology suffix matched" +msgid_plural "%(count)d topology suffixes matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/topology.py:446 +#, python-format +msgid "Deleted topology suffix \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/topology.py:460 +#, python-format +msgid "Added topology suffix \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/topology.py:474 +#, python-format +msgid "Modified topology suffix \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/topology.py:489 +msgid "" +"\n" +"Verify replication topology for suffix.\n" +"\n" +"Checks done:\n" +" 1. check if a topology is not disconnected. In other words if there are\n" +" replication paths between all servers.\n" +" 2. check if servers don't have more than the recommended number of\n" +" replication agreements\n" +msgstr "" + +#: ipaserver/plugins/user.py:164 ipaserver/plugins/sudorule.py:442 +msgid "users" +msgstr "" + +#: ipaserver/plugins/user.py:496 +#, python-format +msgid "Added user \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:592 ipaserver/plugins/migration.py:804 +msgid "Default group for new users not found" +msgstr "" + +#: ipaserver/plugins/user.py:595 +msgid "Default group for new users is not POSIX" +msgstr "" + +#: ipaserver/plugins/user.py:695 +#, python-format +msgid "Deleted user \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:713 +#, python-format +msgid "%s: user is already preserved" +msgstr "" + +#: ipaserver/plugins/user.py:835 +#, python-format +msgid "Modified user \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:949 +#, python-format +msgid "Undeleted user account \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:963 +#, python-format +msgid "user \"%s\" is already active" +msgstr "" + +#: ipaserver/plugins/user.py:994 +#, python-format +msgid "Staged user account \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:1089 +#, python-format +msgid "Disabled user account \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:1111 +#, python-format +msgid "Enabled user account \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:1128 +msgid "" +"\n" +" Unlock a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked " +"by\n" +" an administrator." +msgstr "" + +#: ipaserver/plugins/user.py:1137 +#, python-format +msgid "Unlocked account \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:1169 +msgid "Failed logins" +msgstr "" + +#: ipaserver/plugins/user.py:1173 +msgid "Last successful authentication" +msgstr "" + +#: ipaserver/plugins/user.py:1177 +msgid "Last failed authentication" +msgstr "" + +#: ipaserver/plugins/user.py:1181 +msgid "Time now" +msgstr "" + +#: ipaserver/plugins/user.py:1189 +msgid "" +"\n" +" Lockout status of a user account\n" +"\n" +" An account may become locked if the password is entered incorrectly too\n" +" many times within a specific time period as controlled by password\n" +" policy. A locked account is a temporary condition and may be unlocked " +"by\n" +" an administrator.\n" +"\n" +" This connects to each IPA master and displays the lockout status on\n" +" each one.\n" +"\n" +" To determine whether an account is locked on a given server you need\n" +" to compare the number of failed logins and the time of the last " +"failure.\n" +" For an account to be locked it must exceed the maxfail failures within\n" +" the failinterval duration as specified in the password policy " +"associated\n" +" with the user.\n" +"\n" +" The failed login counter is modified only when a user attempts a log in\n" +" so it is possible that an account may appear locked but the last failed\n" +" login attempt is older than the lockouttime of the password policy. " +"This\n" +" means that the user may attempt a login again. " +msgstr "" + +#: ipaserver/plugins/user.py:1243 +#, python-format +msgid "%(host)s failed: %(error)s" +msgstr "" + +#: ipaserver/plugins/user.py:1281 +#, python-format +msgid "%(host)s failed" +msgstr "" + +#: ipaserver/plugins/user.py:1291 +#, python-format +msgid "Account disabled: %(disabled)s" +msgstr "" + +#: ipaserver/plugins/user.py:1299 +#, python-format +msgid "Added certificates to user \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:1305 +#, python-format +msgid "Removed certificates from user \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:1330 +msgid "Add new principal alias to the user entry" +msgstr "" + +#: ipaserver/plugins/user.py:1331 +#, python-format +msgid "Added new aliases to user \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/user.py:1336 +msgid "Remove principal alias from the user entry" +msgstr "" + +#: ipaserver/plugins/user.py:1337 +#, python-format +msgid "Removed aliases from user \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/virtual.py:57 +msgid "operation not defined" +msgstr "" + +#: ipaserver/plugins/virtual.py:82 +#, python-format +msgid "not allowed to perform operation: %s" +msgstr "" + +#: ipaserver/plugins/virtual.py:84 +msgid "No such virtual command" +msgstr "" + +#: ipaserver/plugins/whoami.py:15 +msgid "" +"\n" +"Return information about currently authenticated identity\n" +"\n" +"Who am I command returns information on how to get\n" +"more details about the identity authenticated for this\n" +"request. The information includes:\n" +"\n" +" * type of object\n" +" * command to retrieve details of the object\n" +" * arguments and options to pass to the command\n" +"\n" +"The information is returned as a dictionary. Examples below use\n" +"'key: value' output for illustrative purposes.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Look up as IPA user:\n" +" kinit admin\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: user\n" +" command: user_show/1\n" +" arguments: admin\n" +" ------------------------------------------\n" +"\n" +" Look up as a user from a trusted domain:\n" +" kinit user@AD.DOMAIN\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: idoverrideuser\n" +" command: idoverrideuser_show/1\n" +" arguments: ('default trust view', 'user@ad.domain')\n" +" ------------------------------------------\n" +"\n" +" Look up as a host:\n" +" kinit -k\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: host\n" +" command: host_show/1\n" +" arguments: ipa.example.com\n" +" ------------------------------------------\n" +"\n" +" Look up as a Kerberos service:\n" +" kinit -k -t /path/to/keytab HTTP/ipa.example.com\n" +" ipa console\n" +" >> api.Command.whoami()\n" +" ------------------------------------------\n" +" object: service\n" +" command: service_show/1\n" +" arguments: HTTP/ipa.example.com\n" +" ------------------------------------------\n" +msgstr "" + +#: ipaserver/plugins/whoami.py:77 +msgid "Describe currently authenticated identity." +msgstr "" + +#: ipaserver/plugins/whoami.py:82 ipaserver/plugins/whoami.py:88 +msgid "Object class name" +msgstr "" + +#: ipaserver/plugins/whoami.py:83 ipaserver/plugins/whoami.py:89 +msgid "Function to get details" +msgstr "" + +#: ipaserver/plugins/whoami.py:84 ipaserver/plugins/whoami.py:91 +msgid "Arguments to details function" +msgstr "" + +#: ipaserver/plugins/whoami.py:111 +msgid "Cannot query Directory Manager with API" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:92 +msgid "Class of Service object used for linking policies with groups" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:143 +#, python-format +msgid "priority must be a unique value (%(prio)d already used by %(gname)s)" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:171 +msgid "Add Class of Service entry" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:194 +msgid "Delete Class of Service entry" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:200 +msgid "Modify Class of Service entry" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:218 +msgid "Display Class of Service entry" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:224 +msgid "Search for Class of Service entry" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:237 +msgid "password policy" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:238 +msgid "password policies" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:297 +msgid "Password Policies" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:370 +msgid "Max repeat" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:371 +msgid "Maximum number of same consecutive characters" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:379 +msgid "Max sequence" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:380 +msgid "The max. length of monotonic character sequences (abcd)" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:388 +msgid "Dictionary check" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:389 +msgid "Check if the password is a dictionary word" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:395 +msgid "User check" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:396 +msgid "Check if the password contains the username" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:469 +msgid "" +"Minimum length must be >= 6 if maxrepeat, maxsequence, dictcheck or " +"usercheck are defined" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:495 +msgid "Maximum password life must be equal to or greater than the minimum." +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:554 +msgid "cannot delete global password policy" +msgstr "" + +#: ipaserver/plugins/pwpolicy.py:588 +msgid "priority cannot be set on global policy" +msgstr "" + +#: ipaserver/plugins/server.py:36 +msgid "" +"\n" +"IPA servers\n" +msgstr "" + +#: ipaserver/plugins/server.py:38 +msgid "" +"\n" +"Get information about installed IPA servers.\n" +msgstr "" + +#: ipaserver/plugins/server.py:42 +msgid "" +"\n" +" Find all servers:\n" +" ipa server-find\n" +msgstr "" + +#: ipaserver/plugins/server.py:45 +msgid "" +"\n" +" Show specific server:\n" +" ipa server-show ipa.example.com\n" +msgstr "" + +#: ipaserver/plugins/server.py:61 +msgid "server" +msgstr "" + +#: ipaserver/plugins/server.py:62 +msgid "servers" +msgstr "" + +#: ipaserver/plugins/server.py:70 +msgid "IPA Servers" +msgstr "" + +#: ipaserver/plugins/server.py:133 +msgid "Server location" +msgstr "" + +#: ipaserver/plugins/server.py:140 +msgid "Service weight" +msgstr "" + +#: ipaserver/plugins/server.py:141 +msgid "Weight for server services" +msgstr "" + +#: ipaserver/plugins/server.py:148 +msgid "Service relative weight" +msgstr "" + +#: ipaserver/plugins/server.py:149 +msgid "Relative weight for server services (counts per location)" +msgstr "" + +#: ipaserver/plugins/server.py:154 +msgid "Enabled server roles" +msgstr "" + +#: ipaserver/plugins/server.py:155 +msgid "List of enabled roles" +msgstr "" + +#: ipaserver/plugins/server.py:222 +msgid "Modify information about an IPA server." +msgstr "" + +#: ipaserver/plugins/server.py:224 +#, python-format +msgid "Modified IPA server \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/server.py:306 +#, python-format +msgid "%(count)d IPA server matched" +msgid_plural "%(count)d IPA servers matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/server.py:444 +#, python-format +msgid "Deleted IPA server \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/server.py:449 +msgid "Ignore topology errors" +msgstr "" + +#: ipaserver/plugins/server.py:450 +msgid "Ignore topology connectivity problems after removal" +msgstr "" + +#: ipaserver/plugins/server.py:455 +msgid "Ignore check for last remaining CA or DNS server" +msgstr "" + +#: ipaserver/plugins/server.py:456 +msgid "Skip a check whether the last CA master or DNS server is removed" +msgstr "" + +#: ipaserver/plugins/server.py:462 +msgid "Force server removal" +msgstr "" + +#: ipaserver/plugins/server.py:463 +msgid "Force server removal even if it does not exist" +msgstr "" + +#: ipaserver/plugins/server.py:500 +msgid "" +"Replica is active DNSSEC key master. Uninstall could break your DNS system. " +"Please disable or replace DNSSEC key master first." +msgstr "" + +#: ipaserver/plugins/server.py:506 +msgid "Deleting this server will leave your installation without a DNS." +msgstr "" + +#: ipaserver/plugins/server.py:520 +msgid "" +"Deleting this server is not allowed as it would leave your installation " +"without a KRA." +msgstr "" + +#: ipaserver/plugins/server.py:530 +msgid "" +"Deleting this server is not allowed as it would leave your installation " +"without a CA." +msgstr "" + +#: ipaserver/plugins/server.py:545 +msgid "Ignoring these warnings and proceeding with removal" +msgstr "" + +#: ipaserver/plugins/server.py:595 +#, python-format +msgid "" +"Failed to clean memberPrincipal %(principal)s from s4u2proxy entry %(dn)s: " +"%(err)s" +msgstr "" + +#: ipaserver/plugins/server.py:616 +#, python-format +msgid "Failed to clean up DNA hostname entries for %(master)s: %(err)s" +msgstr "" + +#: ipaserver/plugins/server.py:637 +#, python-format +msgid "Failed to remove server %(master)s from server list: %(err)s" +msgstr "" + +#: ipaserver/plugins/server.py:663 +#, python-format +msgid "Failed to clean up Custodia keys for %(master)s: %(err)s" +msgstr "" + +#: ipaserver/plugins/server.py:701 +#, python-format +msgid "Failed to cleanup server principals/keys: %(err)s" +msgstr "" + +#: ipaserver/plugins/server.py:717 +#, python-format +msgid "Failed to cleanup %(hostname)s DNS entries: %(err)s" +msgstr "" + +#: ipaserver/plugins/server.py:722 +msgid "You may need to manually remove them from the tree" +msgstr "" + +#: ipaserver/plugins/server.py:737 +#, python-format +msgid "Forcing removal of %(hostname)s" +msgstr "" + +#: ipaserver/plugins/server.py:747 +msgid "Ignoring topology connectivity errors." +msgstr "" + +#: ipaserver/plugins/server.py:766 +#, python-format +msgid "Failed to remove server from security domain: %s" +msgstr "" + +#: ipaserver/plugins/server.py:793 +msgid "Server has already been deleted" +msgstr "" + +#: ipaserver/plugins/server.py:843 +msgid "Agreements deleted" +msgstr "" + +#: ipaserver/plugins/server.py:854 +msgid "Following segments were not deleted:" +msgstr "" + +#: ipaserver/plugins/server.py:927 ipaserver/plugins/trust.py:1866 +#, python-format +msgid "must be \"%s\"" +msgstr "" + +#: ipaserver/plugins/server.py:939 +msgid "not allowed to perform server connection check" +msgstr "" + +#: ipaserver/plugins/server.py:965 +msgid "Set enabled/hidden state of a server." +msgstr "" + +#: ipaserver/plugins/server.py:971 +msgid "State" +msgstr "" + +#: ipaserver/plugins/server.py:972 +msgid "Server state" +msgstr "" + +#: ipaserver/plugins/server.py:977 +#, python-format +msgid "Changed server state of \"%(value)s\"." +msgstr "" + +#: ipaserver/plugins/server.py:986 +msgid "Cannot hide CA renewal master." +msgstr "" + +#: ipaserver/plugins/server.py:988 +msgid "Cannot hide DNSSec key master." +msgstr "" + +#: ipaserver/plugins/server.py:1000 +#, python-format +msgid "Cannot hide last enabled %(name)s server." +msgstr "" + +#: ipaserver/plugins/aci.py:165 +msgid "A list of ACI values" +msgstr "" + +#: ipaserver/plugins/aci.py:229 +msgid "type, filter, subtree and targetgroup are mutually exclusive" +msgstr "" + +#: ipaserver/plugins/aci.py:232 +msgid "ACI prefix is required" +msgstr "" + +#: ipaserver/plugins/aci.py:235 +msgid "" +"at least one of: type, filter, subtree, targetgroup, attrs or memberof are " +"required" +msgstr "" + +#: ipaserver/plugins/aci.py:238 +msgid "filter and memberof are mutually exclusive" +msgstr "" + +#: ipaserver/plugins/aci.py:244 +msgid "group, permission and self are mutually exclusive" +msgstr "" + +#: ipaserver/plugins/aci.py:246 +msgid "One of group, permission or self is required" +msgstr "" + +#: ipaserver/plugins/aci.py:269 +#, python-format +msgid "Group '%s' does not exist" +msgstr "" + +#: ipaserver/plugins/aci.py:295 +msgid "empty filter" +msgstr "" + +#: ipaserver/plugins/aci.py:316 +#, python-format +msgid "Syntax Error: %(error)s" +msgstr "" + +#: ipaserver/plugins/aci.py:361 +#, python-format +msgid "invalid DN (%s)" +msgstr "" + +#: ipaserver/plugins/aci.py:408 +#, python-format +msgid "ACI with name \"%s\" not found" +msgstr "" + +#: ipaserver/plugins/aci.py:437 +msgid "ACI object." +msgstr "" + +#: ipaserver/plugins/aci.py:440 +msgid "ACIs" +msgstr "" + +#: ipaserver/plugins/aci.py:524 +#, python-format +msgid "Created ACI \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/aci.py:577 +#, python-format +msgid "Deleted ACI \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/aci.py:620 +#, python-format +msgid "Modified ACI \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/aci.py:694 +#, python-format +msgid "%(count)d ACI matched" +msgid_plural "%(count)d ACIs matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/aci.py:929 +#, python-format +msgid "Renamed ACI to \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:43 +msgid "" +"\n" +"Auto Membership Rule.\n" +msgstr "" + +#: ipaserver/plugins/automember.py:45 +msgid "" +"\n" +"Bring clarity to the membership of hosts and users by configuring inclusive\n" +"or exclusive regex patterns, you can automatically assign a new entries " +"into\n" +"a group or hostgroup based upon attribute information.\n" +msgstr "" + +#: ipaserver/plugins/automember.py:49 +msgid "" +"\n" +"A rule is directly associated with a group by name, so you cannot create\n" +"a rule without an accompanying group or hostgroup.\n" +msgstr "" + +#: ipaserver/plugins/automember.py:52 +msgid "" +"\n" +"A condition is a regular expression used by 389-ds to match a new incoming\n" +"entry with an automember rule. If it matches an inclusive rule then the\n" +"entry is added to the appropriate group or hostgroup.\n" +msgstr "" + +#: ipaserver/plugins/automember.py:56 +msgid "" +"\n" +"A default group or hostgroup could be specified for entries that do not\n" +"match any rule. In case of user entries this group will be a fallback group\n" +"because all users are by default members of group specified in IPA config.\n" +msgstr "" + +#: ipaserver/plugins/automember.py:60 +msgid "" +"\n" +"The automember-rebuild command can be used to retroactively run automember " +"rules\n" +"against existing entries, thus rebuilding their membership.\n" +msgstr "" + +#: ipaserver/plugins/automember.py:65 +msgid "" +"\n" +" Add the initial group or hostgroup:\n" +" ipa hostgroup-add --desc=\"Web Servers\" webservers\n" +" ipa group-add --desc=\"Developers\" devel\n" +msgstr "" + +#: ipaserver/plugins/automember.py:69 +msgid "" +"\n" +" Add the initial rule:\n" +" ipa automember-add --type=hostgroup webservers\n" +" ipa automember-add --type=group devel\n" +msgstr "" + +#: ipaserver/plugins/automember.py:73 +msgid "" +"\n" +" Add a condition to the rule:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +" ipa automember-add-condition --key=manager --type=group --inclusive-" +"regex=^uid=mscott devel\n" +msgstr "" + +#: ipaserver/plugins/automember.py:77 +msgid "" +"\n" +" Add an exclusive condition to the rule to prevent auto assignment:\n" +" ipa automember-add-condition --key=fqdn --type=hostgroup --exclusive-" +"regex=^web5\\.example\\.com webservers\n" +msgstr "" + +#: ipaserver/plugins/automember.py:80 +msgid "" +"\n" +" Add a host:\n" +" ipa host-add web1.example.com\n" +msgstr "" + +#: ipaserver/plugins/automember.py:83 +msgid "" +"\n" +" Add a user:\n" +" ipa user-add --first=Tim --last=User --password tuser1 --manager=mscott\n" +msgstr "" + +#: ipaserver/plugins/automember.py:86 +msgid "" +"\n" +" Verify automembership:\n" +" ipa hostgroup-show webservers\n" +" Host-group: webservers\n" +" Description: Web Servers\n" +" Member hosts: web1.example.com\n" +"\n" +" ipa group-show devel\n" +" Group name: devel\n" +" Description: Developers\n" +" GID: 1004200000\n" +" Member users: tuser\n" +msgstr "" + +#: ipaserver/plugins/automember.py:98 +msgid "" +"\n" +" Remove a condition from the rule:\n" +" ipa automember-remove-condition --key=fqdn --type=hostgroup --inclusive-" +"regex=^web[1-9]+\\.example\\.com webservers\n" +msgstr "" + +#: ipaserver/plugins/automember.py:101 +msgid "" +"\n" +" Modify the automember rule:\n" +" ipa automember-mod\n" +msgstr "" + +#: ipaserver/plugins/automember.py:104 +msgid "" +"\n" +" Set the default (fallback) target group:\n" +" ipa automember-default-group-set --default-group=webservers --" +"type=hostgroup\n" +" ipa automember-default-group-set --default-group=ipausers --type=group\n" +msgstr "" + +#: ipaserver/plugins/automember.py:108 +msgid "" +"\n" +" Remove the default (fallback) target group:\n" +" ipa automember-default-group-remove --type=hostgroup\n" +" ipa automember-default-group-remove --type=group\n" +msgstr "" + +#: ipaserver/plugins/automember.py:112 +msgid "" +"\n" +" Show the default (fallback) target group:\n" +" ipa automember-default-group-show --type=hostgroup\n" +" ipa automember-default-group-show --type=group\n" +msgstr "" + +#: ipaserver/plugins/automember.py:116 +msgid "" +"\n" +" Find all of the automember rules:\n" +" ipa automember-find\n" +msgstr "" + +#: ipaserver/plugins/automember.py:119 +msgid "" +"\n" +" Find all of the orphan automember rules:\n" +" ipa automember-find-orphans --type=hostgroup\n" +" Find all of the orphan automember rules and remove them:\n" +" ipa automember-find-orphans --type=hostgroup --remove\n" +msgstr "" + +#: ipaserver/plugins/automember.py:124 +msgid "" +"\n" +" Display a automember rule:\n" +" ipa automember-show --type=hostgroup webservers\n" +" ipa automember-show --type=group devel\n" +msgstr "" + +#: ipaserver/plugins/automember.py:128 +msgid "" +"\n" +" Delete an automember rule:\n" +" ipa automember-del --type=hostgroup webservers\n" +" ipa automember-del --type=group devel\n" +msgstr "" + +#: ipaserver/plugins/automember.py:132 +msgid "" +"\n" +" Rebuild membership for all users:\n" +" ipa automember-rebuild --type=group\n" +msgstr "" + +#: ipaserver/plugins/automember.py:135 +msgid "" +"\n" +" Rebuild membership for all hosts:\n" +" ipa automember-rebuild --type=hostgroup\n" +msgstr "" + +#: ipaserver/plugins/automember.py:138 +msgid "" +"\n" +" Rebuild membership for specified users:\n" +" ipa automember-rebuild --users=tuser1 --users=tuser2\n" +msgstr "" + +#: ipaserver/plugins/automember.py:141 +msgid "" +"\n" +" Rebuild membership for specified hosts:\n" +" ipa automember-rebuild --hosts=web1.example.com --hosts=web2.example." +"com\n" +msgstr "" + +#: ipaserver/plugins/automember.py:244 +msgid "Auto Membership Rule" +msgstr "" + +#: ipaserver/plugins/automember.py:275 +#, python-format +msgid "%(otype)s \"%(oname)s\" not found" +msgstr "" + +#: ipaserver/plugins/automember.py:301 +#, python-format +msgid "%s is not a valid attribute." +msgstr "" + +#: ipaserver/plugins/automember.py:314 +msgid "" +"\n" +" Add an automember rule.\n" " " msgstr "" -#: ipaserver/plugins/realmdomains.py:177 +#: ipaserver/plugins/automember.py:318 +#, python-format +msgid "Added automember rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:325 +msgid "Auto Membership is not configured" +msgstr "" + +#: ipaserver/plugins/automember.py:337 +msgid "" +"\n" +" Add conditions to an automember rule.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:348 +#, python-format +msgid "Added condition(s) to \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:371 ipaserver/plugins/automember.py:455 +#, python-format +msgid "Auto member rule: %s not found!" +msgstr "" + +#: ipaserver/plugins/automember.py:413 +msgid "" +"\n" +" Override this so we can add completed and failed to the return " +"result.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:428 +msgid "" +"\n" +" Remove conditions from an automember rule.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:432 +#, python-format +msgid "Removed condition(s) from \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:496 +msgid "" +"\n" +" Override this so we can set completed and failed.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:511 +msgid "" +"\n" +" Modify an automember rule.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:515 +#, python-format +msgid "Modified automember rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:525 +msgid "" +"\n" +" Delete an automember rule.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:529 +#, python-format +msgid "Deleted automember rule \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:534 +msgid "" +"\n" +" Search for automember rules.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:540 ipaserver/plugins/automember.py:840 +#, python-format +msgid "%(count)d rules matched" +msgid_plural "%(count)d rules matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/automember.py:552 +msgid "" +"\n" +" Display information about an automember rule.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:576 +msgid "" +"\n" +" Set default (fallback) group for all unmatched entries.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:590 +#, python-format +msgid "Set default (fallback) group for automember \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:607 +msgid "" +"\n" +" Remove default (fallback) group for all unmatched entries.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:614 +#, python-format +msgid "Removed default (fallback) group for automember \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/automember.py:625 ipaserver/plugins/automember.py:633 +#: ipaserver/plugins/automember.py:661 +msgid "No default (fallback) group set" +msgstr "" + +#: ipaserver/plugins/automember.py:644 +msgid "" +"\n" +" Display information about the default (fallback) automember groups.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:675 +msgid "Task DN" +msgstr "" + +#: ipaserver/plugins/automember.py:676 +msgid "DN of the started task" +msgstr "" + +#: ipaserver/plugins/automember.py:727 +msgid "at least one of options: type, users, hosts must be specified" +msgstr "" + +#: ipaserver/plugins/automember.py:733 +msgid "users and hosts cannot both be set" +msgstr "" + +#: ipaserver/plugins/automember.py:737 +msgid "hosts cannot be set when type is 'group'" +msgstr "" + +#: ipaserver/plugins/automember.py:741 +msgid "users cannot be set when type is 'hostgroup'" +msgstr "" + +#: ipaserver/plugins/automember.py:795 +msgid "Automember rebuild membership task started" +msgstr "" + +#: ipaserver/plugins/automember.py:815 +#, python-format +msgid "Task DN = '%s'" +msgstr "" + +#: ipaserver/plugins/automember.py:828 +msgid "" +"\n" +" Search for orphan automember rules. The command might need to be run as\n" +" a privileged user user to get all orphan rules.\n" +" " +msgstr "" + +#: ipaserver/plugins/automember.py:835 +msgid "Remove orphan automember rules" +msgstr "" + +#: ipaserver/plugins/baseldap.py:101 +msgid "Member service groups" +msgstr "" + +#: ipaserver/plugins/baseldap.py:110 +msgid "Member HBAC service groups" +msgstr "" + +#: ipaserver/plugins/baseldap.py:127 +msgid "Member ID user overrides" +msgstr "" + +#: ipaserver/plugins/baseldap.py:129 +msgid "Indirect Member ID user overrides" +msgstr "" + +#: ipaserver/plugins/baseldap.py:146 +msgid "Indirect Member permissions" +msgstr "" + +#: ipaserver/plugins/baseldap.py:149 +msgid "Indirect Member HBAC service" +msgstr "" + +#: ipaserver/plugins/baseldap.py:152 +msgid "Indirect Member HBAC service group" +msgstr "" + +#: ipaserver/plugins/baseldap.py:213 +msgid "Invalid format. Should be name=value" +msgstr "" + +#: ipaserver/plugins/baseldap.py:584 +msgid "An IPA master host cannot be deleted or disabled" +msgstr "" + +#: ipaserver/plugins/baseldap.py:615 +msgid "entry" +msgstr "" + +#: ipaserver/plugins/baseldap.py:616 +msgid "entries" +msgstr "" + +#: ipaserver/plugins/baseldap.py:654 ipaserver/plugins/baseldap.py:655 +msgid "Entry" +msgstr "" + +#: ipaserver/plugins/baseldap.py:658 +#, python-format +msgid "container entry (%(container)s) not found" +msgstr "" + +#: ipaserver/plugins/baseldap.py:659 +#, python-format +msgid "%(parent)s: %(oname)s not found" +msgstr "" + +#: ipaserver/plugins/baseldap.py:660 ipaserver/plugins/schema.py:257 +#: ipaserver/plugins/schema.py:333 ipaserver/plugins/schema.py:424 +#: ipaserver/plugins/schema.py:661 ipaserver/plugins/schema.py:754 +#, python-format +msgid "%(pkey)s: %(oname)s not found" +msgstr "" + +#: ipaserver/plugins/baseldap.py:661 +#, python-format +msgid "%(oname)s with name \"%(pkey)s\" already exists" +msgstr "" + +#: ipaserver/plugins/baseldap.py:954 ipaserver/plugins/baseldap.py:962 +#, python-format +msgid "attribute \"%(attribute)s\" not allowed" +msgstr "" + +#: ipaserver/plugins/baseldap.py:967 +#, python-format +msgid "these attributes are not allowed: %(attrs)s" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1025 +msgid "attribute is not configurable" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1128 +msgid "No such attribute on this entry" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1488 +#, python-format +msgid "Rename the %(ldap_obj_name)s object" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1586 ipaserver/plugins/baseldap.py:2494 +msgid "the entry was deleted while being modified" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1719 ipaserver/plugins/baseldap.py:2221 +#, python-format +msgid "%s" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1762 ipaserver/plugins/baseldap.py:2245 +#, python-format +msgid "%s to add" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1861 ipaserver/plugins/baseldap.py:2344 +#, python-format +msgid "%s to remove" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1961 ipaserver/plugins/schema.py:122 +#, python-format +msgid "Results should contain primary key attribute only (\"%s\")" +msgstr "" + +#: ipaserver/plugins/baseldap.py:1969 #, python-format msgid "" -"DNS zone for each realmdomain must contain SOA or NS records. No records " -"found for: %s" +"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." msgstr "" -#: ipaserver/plugins/realmdomains.py:203 -#, python-format -msgid "The following domains do not belong to this realm: %(domains)s" -msgstr "" - -#: ipaserver/plugins/realmdomains.py:218 +#: ipaserver/plugins/baseldap.py:1970 #, python-format msgid "" -"The realm of the following domains could not be detected: %(domains)s. If " -"these are domains that belong to the this realm, please create a _kerberos " -"TXT record containing \"%(realm)s\" in each of them." +"Search for %(searched_object)s without these %(relationship)s " +"%(ldap_object)s." msgstr "" -#: ipaserver/plugins/realmdomains.py:241 +#: ipaserver/plugins/baseldap.py:2525 +#, python-format +msgid "added attribute value to entry %(value)s" +msgstr "" + +#: ipaserver/plugins/baseldap.py:2539 +#, python-format +msgid "removed attribute values from entry %(value)s" +msgstr "" + +#: ipaserver/plugins/baseldap.py:2548 +msgid "one or more values to remove" +msgstr "" + +#: ipaserver/plugins/batch.py:35 msgid "" -"The --domain option cannot be used together with --add-domain or --del-" -"domain. Use --domain to specify the whole realm domain list explicitly, to " -"add/remove individual domains, use --add-domain/del-domain." +"\n" +"Plugin to make multiple ipa calls via one remote procedure call\n" +"\n" +"To run this code in the lite-server\n" +"\n" +"curl -H \"Content-Type:application/json\" -H \"Accept:application/" +"json\" -H \"Accept-Language:en\" --negotiate -u : --cacert /" +"etc/ipa/ca.crt -d @batch_request.json -X POST http://" +"localhost:8888/ipa/json\n" +"\n" +"where the contents of the file batch_request.json follow the below example\n" +"\n" +"{\"method\":\"batch\",\"params\":[[\n" +" {\"method\":\"group_find\",\"params\":[[],{}]},\n" +" {\"method\":\"user_find\",\"params\":[[],{\"whoami\":\"true\",\"all" +"\":\"true\"}]},\n" +" {\"method\":\"user_show\",\"params\":[[\"admin\"],{\"all\":true}]}\n" +" ],{}],\"id\":1}\n" +"\n" +"The format of the response is nested the same way. At the top you will see\n" +" \"error\": null,\n" +" \"id\": 1,\n" +" \"result\": {\n" +" \"count\": 3,\n" +" \"results\": [\n" +"\n" +"\n" +"And then a nested response for each IPA command method sent in the request\n" +"\n" msgstr "" -#: ipaserver/plugins/realmdomains.py:252 -msgid "IPA server domain cannot be omitted" +#: ipaserver/plugins/batch.py:71 +msgid "Make multiple ipa calls via one remote procedure call" msgstr "" -#: ipaserver/plugins/realmdomains.py:274 -msgid "IPA server domain cannot be deleted" +#: ipaserver/plugins/batch.py:122 +msgid "must contain a tuple (list, dict)" +msgstr "" + +#: ipaserver/plugins/cert.py:64 ipaserver/plugins/hbactest.py:39 +msgid "pyhbac is not installed." +msgstr "" + +#: ipaserver/plugins/cert.py:69 +msgid "" +"\n" +"IPA certificate operations\n" +msgstr "" + +#: ipaserver/plugins/cert.py:71 +msgid "" +"\n" +"Implements a set of commands for managing server SSL certificates.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:73 +msgid "" +"\n" +"Certificate requests exist in the form of a Certificate Signing Request " +"(CSR)\n" +"in PEM format.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:76 +msgid "" +"\n" +"The dogtag CA uses just the CN value of the CSR and forces the rest of the\n" +"subject to values configured in the server.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:79 +msgid "" +"\n" +"A certificate is stored with a service principal and a service principal\n" +"needs a host.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:82 +msgid "" +"\n" +"In order to request a certificate:\n" +msgstr "" + +#: ipaserver/plugins/cert.py:84 +msgid "" +"\n" +"* The host must exist\n" +"* The service must exist (or you use the --add option to automatically add " +"it)\n" +msgstr "" + +#: ipaserver/plugins/cert.py:87 +msgid "" +"\n" +"SEARCHING:\n" +msgstr "" + +#: ipaserver/plugins/cert.py:89 +msgid "" +"\n" +"Certificates may be searched on by certificate subject, serial number,\n" +"revocation reason, validity dates and the issued date.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:92 +msgid "" +"\n" +"When searching on dates the _from date does a >= search and the _to date\n" +"does a <= search. When combined these are done as an AND.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:95 +msgid "" +"\n" +"Dates are treated as GMT to match the dates in the certificates.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:97 +msgid "" +"\n" +"The date format is YYYY-mm-dd.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:101 +msgid "" +"\n" +" Request a new certificate and add the principal:\n" +" ipa cert-request --add --principal=HTTP/lion.example.com example.csr\n" +msgstr "" + +#: ipaserver/plugins/cert.py:104 +msgid "" +"\n" +" Retrieve an existing certificate:\n" +" ipa cert-show 1032\n" +msgstr "" + +#: ipaserver/plugins/cert.py:107 +msgid "" +"\n" +" Revoke a certificate (see RFC 5280 for reason details):\n" +" ipa cert-revoke --revocation-reason=6 1032\n" +msgstr "" + +#: ipaserver/plugins/cert.py:110 +msgid "" +"\n" +" Remove a certificate from revocation hold status:\n" +" ipa cert-remove-hold 1032\n" +msgstr "" + +#: ipaserver/plugins/cert.py:113 +msgid "" +"\n" +" Check the status of a signing request:\n" +" ipa cert-status 10\n" +msgstr "" + +#: ipaserver/plugins/cert.py:116 +msgid "" +"\n" +" Search for certificates by hostname:\n" +" ipa cert-find --subject=ipaserver.example.com\n" +msgstr "" + +#: ipaserver/plugins/cert.py:119 +msgid "" +"\n" +" Search for revoked certificates by reason:\n" +" ipa cert-find --revocation-reason=5\n" +msgstr "" + +#: ipaserver/plugins/cert.py:122 +msgid "" +"\n" +" Search for certificates based on issuance date\n" +" ipa cert-find --issuedon-from=2013-02-01 --issuedon-to=2013-02-07\n" +msgstr "" + +#: ipaserver/plugins/cert.py:125 +msgid "" +"\n" +" Search for certificates owned by a specific user:\n" +" ipa cert-find --user=user\n" +msgstr "" + +#: ipaserver/plugins/cert.py:128 +msgid "" +"\n" +" Examine a certificate:\n" +" ipa cert-find --file=cert.pem --all\n" +msgstr "" + +#: ipaserver/plugins/cert.py:131 +msgid "" +"\n" +" Verify that a certificate is owned by a specific user:\n" +" ipa cert-find --file=cert.pem --user=user\n" +msgstr "" + +#: ipaserver/plugins/cert.py:134 +msgid "" +"\n" +"IPA currently immediately issues (or declines) all certificate requests so\n" +"the status of a request is not normally useful. This is for future use\n" +"or the case where a CA does not immediately issue a certificate.\n" +msgstr "" + +#: ipaserver/plugins/cert.py:138 +msgid "" +"\n" +"The following revocation reasons are supported:\n" +"\n" +msgstr "" + +#: ipaserver/plugins/cert.py:141 +msgid " * 0 - unspecified\n" +msgstr "" + +#: ipaserver/plugins/cert.py:142 +msgid " * 1 - keyCompromise\n" +msgstr "" + +#: ipaserver/plugins/cert.py:143 +msgid " * 2 - cACompromise\n" +msgstr "" + +#: ipaserver/plugins/cert.py:144 +msgid " * 3 - affiliationChanged\n" +msgstr "" + +#: ipaserver/plugins/cert.py:145 +msgid " * 4 - superseded\n" +msgstr "" + +#: ipaserver/plugins/cert.py:146 +msgid " * 5 - cessationOfOperation\n" +msgstr "" + +#: ipaserver/plugins/cert.py:147 +msgid " * 6 - certificateHold\n" +msgstr "" + +#: ipaserver/plugins/cert.py:148 +msgid " * 8 - removeFromCRL\n" +msgstr "" + +#: ipaserver/plugins/cert.py:149 +msgid " * 9 - privilegeWithdrawn\n" +msgstr "" + +#: ipaserver/plugins/cert.py:150 +msgid " * 10 - aACompromise\n" +msgstr "" + +#: ipaserver/plugins/cert.py:151 +msgid "" +"\n" +"Note that reason code 7 is not used. See RFC 5280 for more details:\n" +msgstr "" + +#: ipaserver/plugins/cert.py:153 +msgid "" +"\n" +"http://www.ietf.org/rfc/rfc5280.txt\n" +"\n" +msgstr "" + +#: ipaserver/plugins/cert.py:289 +#, python-format +msgid "" +"Principal '%(principal)s' is not permitted to use CA '%(ca)s' with profile " +"'%(profile_id)s' for certificate issuance." +msgstr "" + +#: ipaserver/plugins/cert.py:309 +msgid "enabledService/configuredService not in ipaConfigString kdc entry" +msgstr "" + +#: ipaserver/plugins/cert.py:313 +#, python-format +msgid "Host '%(hostname)s' is not an active KDC" +msgstr "" + +#: ipaserver/plugins/cert.py:347 +msgid "Issuing CA" +msgstr "" + +#: ipaserver/plugins/cert.py:348 +msgid "Name of issuing CA" +msgstr "" + +#: ipaserver/plugins/cert.py:370 +msgid "Subject email address" +msgstr "" + +#: ipaserver/plugins/cert.py:375 +msgid "Subject DNS name" +msgstr "" + +#: ipaserver/plugins/cert.py:380 +msgid "Subject X.400 address" +msgstr "" + +#: ipaserver/plugins/cert.py:385 +msgid "Subject directory name" +msgstr "" + +#: ipaserver/plugins/cert.py:390 +msgid "Subject EDI Party name" +msgstr "" + +#: ipaserver/plugins/cert.py:395 +msgid "Subject URI" +msgstr "" + +#: ipaserver/plugins/cert.py:400 +msgid "Subject IP Address" +msgstr "" + +#: ipaserver/plugins/cert.py:405 +msgid "Subject OID" +msgstr "" + +#: ipaserver/plugins/cert.py:410 +msgid "Subject UPN" +msgstr "" + +#: ipaserver/plugins/cert.py:415 +msgid "Subject Kerberos principal name" +msgstr "" + +#: ipaserver/plugins/cert.py:420 +msgid "Subject Other Name" +msgstr "" + +#: ipaserver/plugins/cert.py:458 +msgid "Serial number (hex)" +msgstr "" + +#: ipaserver/plugins/cert.py:584 +msgid "Request status" +msgstr "" + +#: ipaserver/plugins/cert.py:630 +msgid "" +"automatically add the principal if it doesn't exist (service principals only)" +msgstr "" + +#: ipaserver/plugins/cert.py:679 +#, python-format +msgid "krbtgt certs can use only the %s profile" +msgstr "" + +#: ipaserver/plugins/cert.py:731 +msgid "No Common Name was found in subject of request." +msgstr "" + +#: ipaserver/plugins/cert.py:739 +#, python-format +msgid "" +"hostname in subject of request '%(cn)s' does not match name or aliases of " +"principal '%(principal)s'" +msgstr "" + +#: ipaserver/plugins/cert.py:745 +#, python-format +msgid "" +"hostname in subject of request '%(cn)s' does not match principal hostname " +"'%(hostname)s'" +msgstr "" + +#: ipaserver/plugins/cert.py:754 +msgid "DN commonName does not match user's login" +msgstr "" + +#: ipaserver/plugins/cert.py:768 +msgid "DN emailAddress does not match any of user's email addresses" +msgstr "" + +#: ipaserver/plugins/cert.py:777 +#, python-format +msgid "" +"Insufficient 'write' privilege to the 'userCertificate' attribute of entry " +"'%s'." +msgstr "" + +#: ipaserver/plugins/cert.py:798 ipaserver/plugins/cert.py:916 +#, python-format +msgid "subject alt name type %s is forbidden for user principals" +msgstr "" + +#: ipaserver/plugins/cert.py:843 +#, python-format +msgid "" +"The service principal for subject alt name %s in certificate request does " +"not exist" +msgstr "" + +#: ipaserver/plugins/cert.py:874 +#, python-format +msgid "" +"Insufficient privilege to create a certificate with subject alt name '%s'." +msgstr "" + +#: ipaserver/plugins/cert.py:892 +#, python-format +msgid "Principal '%s' in subject alt name does not match requested principal" +msgstr "" + +#: ipaserver/plugins/cert.py:901 +msgid "RFC822Name does not match any of user's email addresses" +msgstr "" + +#: ipaserver/plugins/cert.py:908 +#, python-format +msgid "subject alt name type %s is forbidden for non-user principals" +msgstr "" + +#: ipaserver/plugins/cert.py:925 +#, python-format +msgid "Subject alt name type %s is forbidden" +msgstr "" + +#: ipaserver/plugins/cert.py:943 +#, python-format +msgid "CA '%s' is disabled" +msgstr "" + +#: ipaserver/plugins/cert.py:1030 +msgid "'add' option" +msgstr "" + +#: ipaserver/plugins/cert.py:1034 +msgid "The principal for this request doesn't exist." +msgstr "" + +#: ipaserver/plugins/cert.py:1150 +#, python-format +msgid "IP address in subjectAltName (%s) unreachable from DNS names" +msgstr "" + +#: ipaserver/plugins/cert.py:1167 +#, python-format +msgid "IP address in subjectAltName (%s) does not have PTR record" +msgstr "" + +#: ipaserver/plugins/cert.py:1179 +#, python-format +msgid "PTR record for SAN IP (%s) does not match A/AAAA records" +msgstr "" + +#: ipaserver/plugins/cert.py:1278 +msgid "Revoked" +msgstr "" + +#: ipaserver/plugins/cert.py:1284 +msgid "" +"Reason for revoking the certificate (0-10). Type \"ipa help cert\" for " +"revocation reason details. " +msgstr "" + +#: ipaserver/plugins/cert.py:1306 +#, python-format +msgid "Owner %s" +msgstr "" + +#: ipaserver/plugins/cert.py:1393 +#, python-format +msgid "" +"Certificate with serial number %(serial)s issued by CA '%(ca)s' not found" +msgstr "" + +#: ipaserver/plugins/cert.py:1462 +msgid "7 is not a valid revocation reason" +msgstr "" + +#: ipaserver/plugins/cert.py:1564 +msgid "Status of the certificate" +msgstr "" + +#: ipaserver/plugins/cert.py:1570 +msgid "Results should contain primary key attribute only (\"certificate\")" +msgstr "" + +#: ipaserver/plugins/cert.py:1586 +#, python-format +msgid "%(count)d certificate matched" +msgid_plural "%(count)d certificates matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/cert.py:1608 +#, python-format +msgid "Search for certificates with these owner %s." +msgstr "" + +#: ipaserver/plugins/cert.py:1619 +#, python-format +msgid "Search for certificates without these owner %s." +msgstr "" + +#: ipaserver/plugins/config.py:50 +msgid "" +"\n" +"Server configuration\n" +"\n" +"Manage the default values that IPA uses and some of its tuning parameters.\n" +"\n" +"NOTES:\n" +"\n" +"The password notification value (--pwdexpnotify) is stored here so it will\n" +"be replicated. It is not currently used to notify users in advance of an\n" +"expiring password.\n" +"\n" +"Some attributes are read-only, provided only for information purposes. " +"These\n" +"include:\n" +"\n" +"Certificate Subject base: the configured certificate subject base,\n" +" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" +"Password plug-in features: currently defines additional hashes that the\n" +" password will generate (there may be other conditions).\n" +"\n" +"When setting the order list for mapping SELinux users you may need to\n" +"quote the value so it isn't interpreted by the shell.\n" +"\n" +"The maximum length of a hostname in Linux is controlled by\n" +"MAXHOSTNAMELEN in the kernel and defaults to 64. Some other operating\n" +"systems, Solaris for example, allows hostnames up to 255 characters.\n" +"This option will allow flexibility in length but by default limiting\n" +"to the Linux maximum length.\n" +"\n" +"EXAMPLES:\n" +"\n" +" Show basic server configuration:\n" +" ipa config-show\n" +"\n" +" Show all configuration options:\n" +" ipa config-show --all\n" +"\n" +" Change maximum username length to 99 characters:\n" +" ipa config-mod --maxusername=99\n" +"\n" +" Change maximum host name length to 255 characters:\n" +" ipa config-mod --maxhostname=255\n" +"\n" +" Increase default time and size limits for maximum IPA server search:\n" +" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" +"\n" +" Set default user e-mail domain:\n" +" ipa config-mod --emaildomain=example.com\n" +"\n" +" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +" Define SELinux user map order:\n" +" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" +"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" +msgstr "" + +#: ipaserver/plugins/config.py:116 +msgid "must be at least 10" +msgstr "" + +#: ipaserver/plugins/config.py:124 +msgid "configuration options" +msgstr "" + +#: ipaserver/plugins/config.py:160 ipaserver/plugins/config.py:161 +msgid "Configuration" +msgstr "" + +#: ipaserver/plugins/config.py:172 +msgid "Maximum hostname length" +msgstr "" + +#: ipaserver/plugins/config.py:276 ipaserver/plugins/config.py:277 +msgid "Enable adding subids to new users" +msgstr "" + +#: ipaserver/plugins/config.py:281 +msgid "IPA masters" +msgstr "" + +#: ipaserver/plugins/config.py:282 +msgid "List of all IPA masters" +msgstr "" + +#: ipaserver/plugins/config.py:287 +msgid "Hidden IPA masters" +msgstr "" + +#: ipaserver/plugins/config.py:288 +msgid "List of all hidden IPA masters" +msgstr "" + +#: ipaserver/plugins/config.py:293 +msgid "IPA master capable of PKINIT" +msgstr "" + +#: ipaserver/plugins/config.py:294 +msgid "IPA master which can process PKINIT requests" +msgstr "" + +#: ipaserver/plugins/config.py:299 +msgid "IPA CA servers" +msgstr "" + +#: ipaserver/plugins/config.py:300 +msgid "IPA servers configured as certificate authority" +msgstr "" + +#: ipaserver/plugins/config.py:305 +msgid "Hidden IPA CA servers" +msgstr "" + +#: ipaserver/plugins/config.py:306 +msgid "Hidden IPA servers configured as certificate authority" +msgstr "" + +#: ipaserver/plugins/config.py:311 +msgid "IPA CA renewal master" +msgstr "" + +#: ipaserver/plugins/config.py:312 +msgid "Renewal master for IPA certificate authority" +msgstr "" + +#: ipaserver/plugins/config.py:317 ipaserver/plugins/vault.py:990 +msgid "IPA KRA servers" +msgstr "" + +#: ipaserver/plugins/config.py:318 +msgid "IPA servers configured as key recovery agent" +msgstr "" + +#: ipaserver/plugins/config.py:323 +msgid "Hidden IPA KRA servers" +msgstr "" + +#: ipaserver/plugins/config.py:324 +msgid "Hidden IPA servers configured as key recovery agent" +msgstr "" + +#: ipaserver/plugins/config.py:330 ipaserver/plugins/idviews.py:159 +msgid "Domain resolution order" +msgstr "" + +#: ipaserver/plugins/config.py:331 ipaserver/plugins/idviews.py:160 +msgid "colon-separated list of domains used for short name qualification" +msgstr "" + +#: ipaserver/plugins/config.py:336 ipaserver/plugins/dns.py:4147 +msgid "IPA DNS servers" +msgstr "" + +#: ipaserver/plugins/config.py:337 +msgid "IPA servers configured as domain name server" +msgstr "" + +#: ipaserver/plugins/config.py:342 +msgid "Hidden IPA DNS servers" +msgstr "" + +#: ipaserver/plugins/config.py:343 +msgid "Hidden IPA servers configured as domain name server" +msgstr "" + +#: ipaserver/plugins/config.py:348 ipaserver/plugins/dns.py:4153 +msgid "IPA DNSSec key master" +msgstr "" + +#: ipaserver/plugins/config.py:349 +msgid "DNSec key master" +msgstr "" + +#: ipaserver/plugins/config.py:354 +msgid "Setup SID configuration" +msgstr "" + +#: ipaserver/plugins/config.py:355 +msgid "New users and groups automatically get a SID assigned" +msgstr "" + +#: ipaserver/plugins/config.py:360 +msgid "Add SIDs" +msgstr "" + +#: ipaserver/plugins/config.py:361 +msgid "Add SIDs for existing users and groups" +msgstr "" + +#: ipaserver/plugins/config.py:366 ipaserver/plugins/config.py:367 +msgid "NetBIOS name of the IPA domain" +msgstr "" + +#: ipaserver/plugins/config.py:444 +msgid "Empty domain is not allowed" +msgstr "" + +#: ipaserver/plugins/config.py:452 +#, python-format +msgid "Invalid domain name '%(domain)s': %(e)s" +msgstr "" + +#: ipaserver/plugins/config.py:457 +#, python-format +msgid "Server has no information about domain '%(domain)s'" +msgstr "" + +#: ipaserver/plugins/config.py:464 +#, python-format +msgid "Disabled domain '%(domain)s' is not allowed" +msgstr "" + +#: ipaserver/plugins/config.py:514 +msgid "not allowed to enable SID generation" +msgstr "" + +#: ipaserver/plugins/config.py:522 +msgid "" +"Up to 15 characters and only uppercase ASCII letters, digits and dashes are " +"allowed. Empty string is not allowed." +msgstr "" + +#: ipaserver/plugins/config.py:550 +msgid "Failed to call DBus" +msgstr "" + +#: ipaserver/plugins/config.py:560 +msgid "Configuration of SID failed. See details in the error log" +msgstr "" + +#: ipaserver/plugins/config.py:570 +msgid "The group doesn't exist" +msgstr "" + +#: ipaserver/plugins/config.py:588 +#, python-format +msgid "attribute \"%s\" not allowed" +msgstr "" + +#: ipaserver/plugins/config.py:608 +msgid "May not be empty" +msgstr "" + +#: ipaserver/plugins/config.py:627 +#, python-format +msgid "%(obj)s default attribute %(attr)s would not be allowed!" +msgstr "" + +#: ipaserver/plugins/config.py:659 +msgid "A list of SELinux users delimited by $ expected" +msgstr "" + +#: ipaserver/plugins/config.py:663 +#, python-format +msgid "SELinux user '%(user)s' is not valid: %(error)s" +msgstr "" + +#: ipaserver/plugins/config.py:675 +msgid "SELinux user map default user not in order list" +msgstr "" + +#: ipaserver/plugins/config.py:694 +#, python-format +msgid "You cannot specify %s without the --enable-sid option" +msgstr "" + +#: ipaserver/plugins/dns.py:100 +msgid "" +"\n" +"Domain Name System (DNS)\n" +msgstr "" + +#: ipaserver/plugins/dns.py:102 +msgid "" +"\n" +"Manage DNS zone and resource records.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:104 +msgid "" +"\n" +"SUPPORTED ZONE TYPES\n" +"\n" +" * Master zone (dnszone-*), contains authoritative data.\n" +" * Forward zone (dnsforwardzone-*), forwards queries to configured " +"forwarders\n" +" (a set of DNS servers).\n" +msgstr "" + +#: ipaserver/plugins/dns.py:110 +msgid "" +"\n" +"USING STRUCTURED PER-TYPE OPTIONS\n" +msgstr "" + +#: ipaserver/plugins/dns.py:112 +msgid "" +"\n" +"There are many structured DNS RR types where DNS data stored in LDAP server\n" +"is not just a scalar value, for example an IP address or a domain name, but\n" +"a data structure which may be often complex. A good example is a LOC record\n" +"[RFC1876] which consists of many mandatory and optional parts (degrees,\n" +"minutes, seconds of latitude and longitude, altitude or precision).\n" +msgstr "" + +#: ipaserver/plugins/dns.py:118 +msgid "" +"\n" +"It may be difficult to manipulate such DNS records without making a mistake\n" +"and entering an invalid value. DNS module provides an abstraction over " +"these\n" +"raw records and allows to manipulate each RR type with specific options. " +"For\n" +"each supported RR type, DNS module provides a standard option to manipulate\n" +"a raw records with format ---rec, e.g. --mx-rec, and special " +"options\n" +"for every part of the RR structure with format ---, e.g.\n" +"--mx-preference and --mx-exchanger.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:126 +msgid "" +"\n" +"When adding a record, either RR specific options or standard option for a " +"raw\n" +"value can be used, they just should not be combined in one add operation. " +"When\n" +"modifying an existing entry, new RR specific options can be used to change\n" +"one part of a DNS record, where the standard option for raw value is used\n" +"to specify the modified value. The following example demonstrates\n" +"a modification of MX record preference from 0 to 1 in a record without\n" +"modifying the exchanger:\n" +"ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" +msgstr "" + +#: ipaserver/plugins/dns.py:135 +msgid "" +"\n" +"\n" +"EXAMPLES:\n" +msgstr "" + +#: ipaserver/plugins/dns.py:138 +msgid "" +"\n" +" Add new zone:\n" +" ipa dnszone-add example.com --admin-email=admin@example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:141 +msgid "" +"\n" +" Add system permission that can be used for per-zone privilege delegation:\n" +" ipa dnszone-add-permission example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:144 +msgid "" +"\n" +" Modify the zone to allow dynamic updates for hosts own records in realm " +"EXAMPLE.COM:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE\n" +msgstr "" + +#: ipaserver/plugins/dns.py:147 +msgid "" +"\n" +" This is the equivalent of:\n" +" ipa dnszone-mod example.com --dynamic-update=TRUE \\\n" +" --update-policy=\"grant EXAMPLE.COM krb5-self * A; grant EXAMPLE.COM " +"krb5-self * AAAA; grant EXAMPLE.COM krb5-self * SSHFP;\"\n" +msgstr "" + +#: ipaserver/plugins/dns.py:151 +msgid "" +"\n" +" Modify the zone to allow zone transfers for local network only:\n" +" ipa dnszone-mod example.com --allow-transfer=192.0.2.0/24\n" +msgstr "" + +#: ipaserver/plugins/dns.py:154 +msgid "" +"\n" +" Add new reverse zone specified by network IP address:\n" +" ipa dnszone-add --name-from-ip=192.0.2.0/24\n" +msgstr "" + +#: ipaserver/plugins/dns.py:157 +msgid "" +"\n" +" Add second nameserver for example.com:\n" +" ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:160 +msgid "" +"\n" +" Add a mail server for example.com:\n" +" ipa dnsrecord-add example.com @ --mx-rec=\"10 mail1\"\n" +msgstr "" + +#: ipaserver/plugins/dns.py:163 +msgid "" +"\n" +" Add another record using MX record specific options:\n" +" ipa dnsrecord-add example.com @ --mx-preference=20 --mx-exchanger=mail2\n" +msgstr "" + +#: ipaserver/plugins/dns.py:166 +msgid "" +"\n" +" Add another record using interactive mode (started when dnsrecord-add, " +"dnsrecord-mod,\n" +" or dnsrecord-del are executed with no options):\n" +" ipa dnsrecord-add example.com @\n" +" Please choose a type of DNS resource record to be added\n" +" The most common types for this type of zone are: NS, MX, LOC\n" +"\n" +" DNS resource record type: MX\n" +" MX Preference: 30\n" +" MX Exchanger: mail3\n" +" Record name: example.com\n" +" MX record: 10 mail1, 20 mail2, 30 mail3\n" +" NS record: nameserver.example.com., nameserver2.example.com.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:179 +msgid "" +"\n" +" Delete previously added nameserver from example.com:\n" +" ipa dnsrecord-del example.com @ --ns-rec=nameserver2.example.com.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:182 +msgid "" +"\n" +" Add LOC record for example.com:\n" +" ipa dnsrecord-add example.com @ --loc-rec=\"49 11 42.4 N 16 36 29.6 E " +"227.64m\"\n" +msgstr "" + +#: ipaserver/plugins/dns.py:185 +msgid "" +"\n" +" Add new A record for www.example.com. Create a reverse record in " +"appropriate\n" +" reverse zone as well. In this case a PTR record \"2\" pointing to www." +"example.com\n" +" will be created in zone 2.0.192.in-addr.arpa.\n" +" ipa dnsrecord-add example.com www --a-rec=192.0.2.2 --a-create-reverse\n" +msgstr "" + +#: ipaserver/plugins/dns.py:190 +msgid "" +"\n" +" Add new PTR record for www.example.com\n" +" ipa dnsrecord-add 2.0.192.in-addr.arpa. 2 --ptr-rec=www.example.com.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:193 +msgid "" +"\n" +" Add new SRV records for LDAP servers. Three quarters of the requests\n" +" should go to fast.example.com, one quarter to slow.example.com. If neither\n" +" is available, switch to backup.example.com.\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 3 389 fast.example." +"com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"0 1 389 slow.example." +"com\"\n" +" ipa dnsrecord-add example.com _ldap._tcp --srv-rec=\"1 1 389 backup." +"example.com\"\n" +msgstr "" + +#: ipaserver/plugins/dns.py:200 +msgid "" +"\n" +" The interactive mode can be used for easy modification:\n" +" ipa dnsrecord-mod example.com _ldap._tcp\n" +" No option to modify specific record provided.\n" +" Current DNS record contents:\n" +"\n" +" SRV record: 0 3 389 fast.example.com, 0 1 389 slow.example.com, 1 1 389 " +"backup.example.com\n" +"\n" +" Modify SRV record '0 3 389 fast.example.com'? Yes/No (default No):\n" +" Modify SRV record '0 1 389 slow.example.com'? Yes/No (default No): y\n" +" SRV Priority [0]: (keep the default value)\n" +" SRV Weight [1]: 2 (modified value)\n" +" SRV Port [389]: (keep the default value)\n" +" SRV Target [slow.example.com]: (keep the default value)\n" +" 1 SRV record skipped. Only one value per DNS record type can be modified " +"at one time.\n" +" Record name: _ldap._tcp\n" +" SRV record: 0 3 389 fast.example.com, 1 1 389 backup.example.com, 0 2 " +"389 slow.example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:217 +msgid "" +"\n" +" After this modification, three fifths of the requests should go to\n" +" fast.example.com and two fifths to slow.example.com.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:220 +msgid "" +"\n" +" An example of the interactive mode for dnsrecord-del command:\n" +" ipa dnsrecord-del example.com www\n" +" No option to delete specific record provided.\n" +" Delete all? Yes/No (default No): (do not delete all records)\n" +" Current DNS record contents:\n" +"\n" +" A record: 192.0.2.2, 192.0.2.3\n" +"\n" +" Delete A record '192.0.2.2'? Yes/No (default No):\n" +" Delete A record '192.0.2.3'? Yes/No (default No): y\n" +" Record name: www\n" +" A record: 192.0.2.2 (A record 192.0.2.3 has been " +"deleted)\n" +msgstr "" + +#: ipaserver/plugins/dns.py:233 +msgid "" +"\n" +" Show zone example.com:\n" +" ipa dnszone-show example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:236 +msgid "" +"\n" +" Find zone with \"example\" in its domain name:\n" +" ipa dnszone-find example\n" +msgstr "" + +#: ipaserver/plugins/dns.py:239 +msgid "" +"\n" +" Find records for resources with \"www\" in their name in zone example.com:\n" +" ipa dnsrecord-find example.com www\n" +msgstr "" + +#: ipaserver/plugins/dns.py:242 +msgid "" +"\n" +" Find A records with value 192.0.2.2 in zone example.com\n" +" ipa dnsrecord-find example.com --a-rec=192.0.2.2\n" +msgstr "" + +#: ipaserver/plugins/dns.py:245 +msgid "" +"\n" +" Show records for resource www in zone example.com\n" +" ipa dnsrecord-show example.com www\n" +msgstr "" + +#: ipaserver/plugins/dns.py:248 +msgid "" +"\n" +" Delegate zone sub.example to another nameserver:\n" +" ipa dnsrecord-add example.com ns.sub --a-rec=203.0.113.1\n" +" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:252 +msgid "" +"\n" +" Delete zone example.com with all resource records:\n" +" ipa dnszone-del example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:255 +msgid "" +"\n" +" If a global forwarder is configured, all queries for which this server is " +"not\n" +" authoritative (e.g. sub.example.com) will be routed to the global " +"forwarder.\n" +" Global forwarding configuration can be overridden per-zone.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:259 +msgid "" +"\n" +" Semantics of forwarding in IPA matches BIND semantics and depends on the " +"type\n" +" of zone:\n" +" * Master zone: local BIND replies authoritatively to queries for data in\n" +" the given zone (including authoritative NXDOMAIN answers) and forwarding\n" +" affects only queries for names below zone cuts (NS records) of locally\n" +" served zones.\n" +"\n" +" * Forward zone: forward zone contains no authoritative data. BIND " +"forwards\n" +" queries, which cannot be answered from its local cache, to configured\n" +" forwarders.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:270 +msgid "" +"\n" +" Semantics of the --forward-policy option:\n" +" * none - disable forwarding for the given zone.\n" +" * first - forward all queries to configured forwarders. If they fail,\n" +" do resolution using DNS root servers.\n" +" * only - forward all queries to configured forwarders and if they fail,\n" +" return failure.\n" +msgstr "" + +#: ipaserver/plugins/dns.py:277 +msgid "" +"\n" +" Disable global forwarding for given sub-tree:\n" +" ipa dnszone-mod example.com --forward-policy=none\n" +msgstr "" + +#: ipaserver/plugins/dns.py:280 +msgid "" +"\n" +" This configuration forwards all queries for names outside the example.com\n" +" sub-tree to global forwarders. Normal recursive resolution process is used\n" +" for names inside the example.com sub-tree (i.e. NS records are followed " +"etc.).\n" +msgstr "" + +#: ipaserver/plugins/dns.py:284 +msgid "" +"\n" +" Forward all requests for the zone external.example.com to another " +"forwarder\n" +" using a \"first\" policy (it will send the queries to the selected " +"forwarder\n" +" and if not answered it will use global root servers):\n" +" ipa dnsforwardzone-add external.example.com --forward-policy=first \\\n" +" --forwarder=203.0.113.1\n" +msgstr "" + +#: ipaserver/plugins/dns.py:290 +msgid "" +"\n" +" Change forward-policy for external.example.com:\n" +" ipa dnsforwardzone-mod external.example.com --forward-policy=only\n" +msgstr "" + +#: ipaserver/plugins/dns.py:293 +msgid "" +"\n" +" Show forward zone external.example.com:\n" +" ipa dnsforwardzone-show external.example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:296 +msgid "" +"\n" +" List all forward zones:\n" +" ipa dnsforwardzone-find\n" +msgstr "" + +#: ipaserver/plugins/dns.py:299 +msgid "" +"\n" +" Delete forward zone external.example.com:\n" +" ipa dnsforwardzone-del external.example.com\n" +msgstr "" + +#: ipaserver/plugins/dns.py:302 +msgid "" +"\n" +" Resolve a host name to see if it exists (will add default IPA domain\n" +" if one is not included):\n" +" ipa dns-resolve www.example.com\n" +" ipa dns-resolve www\n" +msgstr "" + +#: ipaserver/plugins/dns.py:307 +msgid "" +"\n" +"\n" +"GLOBAL DNS CONFIGURATION\n" +msgstr "" + +#: ipaserver/plugins/dns.py:310 +msgid "" +"\n" +"DNS configuration passed to command line install script is stored in a " +"local\n" +"configuration file on each IPA server where DNS service is configured. " +"These\n" +"local settings can be overridden with a common configuration stored in LDAP\n" +"server:\n" +msgstr "" + +#: ipaserver/plugins/dns.py:315 +msgid "" +"\n" +" Show global DNS configuration:\n" +" ipa dnsconfig-show\n" +msgstr "" + +#: ipaserver/plugins/dns.py:318 +msgid "" +"\n" +" Modify global DNS configuration and set a list of global forwarders:\n" +" ipa dnsconfig-mod --forwarder=203.0.113.113\n" +msgstr "" + +#: ipaserver/plugins/dns.py:406 +msgid "invalid IP network format" +msgstr "" + +#: ipaserver/plugins/dns.py:415 +msgid "each ACL element must be terminated with a semicolon" +msgstr "" + +#: ipaserver/plugins/dns.py:431 +msgid "invalid address format" +msgstr "" + +#: ipaserver/plugins/dns.py:475 +msgid "" +"expected format: <0-255> <0-255> <0-65535> even-" +"length_hexadecimal_digits_or_hyphen" +msgstr "" + +#: ipaserver/plugins/dns.py:484 +msgid "algorithm value: allowed interval 0-255" +msgstr "" + +#: ipaserver/plugins/dns.py:487 +msgid "flags value: allowed interval 0-255" +msgstr "" + +#: ipaserver/plugins/dns.py:490 +msgid "iterations value: allowed interval 0-65535" +msgstr "" + +#: ipaserver/plugins/dns.py:498 +#, python-format +msgid "salt value: %(err)s" +msgstr "" + +#: ipaserver/plugins/dns.py:505 +msgid "invalid domain-name: not fully qualified" +msgstr "" + +#: ipaserver/plugins/dns.py:514 +msgid "should not be a wildcard domain name (RFC 4592 section 4)" +msgstr "" + +#: ipaserver/plugins/dns.py:555 +#, python-format +msgid "" +"All nameservers failed to answer the query for DNS reverse zone %(revdns)s" +msgstr "" + +#: ipaserver/plugins/dns.py:561 +#, python-format +msgid "" +"No answers could be found in the specified lifetime for DNS reverse zone " +"%(revdns)s" +msgstr "" + +#: ipaserver/plugins/dns.py:571 +#, python-format +msgid "" +"DNS reverse zone %(revzone)s for IP address %(addr)s is not managed by this " +"server" +msgstr "" + +#: ipaserver/plugins/dns.py:588 +#, python-format +msgid "DNS zone %(zone)s not found" +msgstr "" + +#: ipaserver/plugins/dns.py:603 +#, python-format +msgid "IP address %(ip)s is already assigned in domain %(domain)s." +msgstr "" + +#: ipaserver/plugins/dns.py:613 +#, python-format +msgid "" +"Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s." +msgstr "" + +#: ipaserver/plugins/dns.py:688 +#, python-format +msgid "%s record" +msgstr "" + +#: ipaserver/plugins/dns.py:690 +#, python-format +msgid "Raw %s records" +msgstr "" + +#: ipaserver/plugins/dns.py:691 +#, python-format +msgid "%s Record" +msgstr "" + +#: ipaserver/plugins/dns.py:692 +#, python-format +msgid "(see RFC %s for details)" +msgstr "" + +#: ipaserver/plugins/dns.py:754 +#, python-format +msgid "'%s' is a required part of DNS record" +msgstr "" + +#: ipaserver/plugins/dns.py:761 +msgid "Invalid number of parts!" +msgstr "" + +#: ipaserver/plugins/dns.py:813 +#, python-format +msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin" +msgstr "" + +#: ipaserver/plugins/dns.py:829 +#, python-format +msgid "format must be specified as \"%(format)s\" %(rfcs)s" +msgstr "" + +#: ipaserver/plugins/dns.py:904 +msgid "Create reverse" +msgstr "" + +#: ipaserver/plugins/dns.py:940 +#, python-format +msgid "Cannot create reverse record for \"%(value)s\": %(exc)s" +msgstr "" + +#: ipaserver/plugins/dns.py:1115 ipaserver/plugins/dns.py:1272 +msgid "Exchanger" +msgstr "" + +#: ipaserver/plugins/dns.py:1190 +msgid "" +"format must be specified as\n" +" \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] " +"[siz[\"m\"] [hp[\"m\"] [vp[\"m\"]]]]\"\n" +" where:\n" +" d1: [0 .. 90] (degrees latitude)\n" +" d2: [0 .. 180] (degrees longitude)\n" +" m1, m2: [0 .. 59] (minutes latitude/longitude)\n" +" s1, s2: [0 .. 59.999] (seconds latitude/longitude)\n" +" alt: [-100000.00 .. 42849672.95] BY .01 (altitude in meters)\n" +" siz, hp, vp: [0 .. 90000000.00] (size/precision in meters)\n" +" See RFC 1876 for details" +msgstr "" + +#: ipaserver/plugins/dns.py:1244 +#, python-format +msgid "'%(required)s' must not be empty when '%(name)s' is set" +msgstr "" + +#: ipaserver/plugins/dns.py:1299 +msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\"" +msgstr "" + +#: ipaserver/plugins/dns.py:1360 ipaserver/plugins/dns.py:1490 +msgid "Priority (order)" +msgstr "" + +#: ipaserver/plugins/dns.py:1361 +msgid "" +"Lower number means higher priority. Clients will attempt to contact the " +"server with the lowest-numbered priority they can reach." +msgstr "" + +#: ipaserver/plugins/dns.py:1369 ipaserver/plugins/dns.py:1499 +msgid "Relative weight for entries with the same priority." +msgstr "" + +#: ipaserver/plugins/dns.py:1389 +msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" +msgstr "" + +#: ipaserver/plugins/dns.py:1491 +msgid "" +"Lower number means higher priority. Clients will attempt to contact the URI " +"with the lowest-numbered priority they can reach." +msgstr "" + +#: ipaserver/plugins/dns.py:1504 +msgid "Target Uniform Resource Identifier" +msgstr "" + +#: ipaserver/plugins/dns.py:1505 +msgid "Target Uniform Resource Identifier according to RFC 3986" +msgstr "" + +#: ipaserver/plugins/dns.py:1587 +#, python-format +msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" +msgstr "" + +#: ipaserver/plugins/dns.py:2056 +msgid "Managedby permission" +msgstr "" + +#: ipaserver/plugins/dns.py:2157 +msgid "cannot be used when a zone is specified" +msgstr "" + +#: ipaserver/plugins/dns.py:2169 +msgid "Only one zone type is allowed per zone name" +msgstr "" + +#: ipaserver/plugins/dns.py:2312 +#, python-format +msgid "Added system permission \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:2342 +#, python-format +msgid "permission \"%(value)s\" already exists" +msgstr "" + +#: ipaserver/plugins/dns.py:2370 +#, python-format +msgid "Removed system permission \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:2406 +msgid "DNS zone" +msgstr "" + +#: ipaserver/plugins/dns.py:2407 +msgid "DNS zones" +msgstr "" + +#: ipaserver/plugins/dns.py:2415 +msgid "DNS Zones" +msgstr "" + +#: ipaserver/plugins/dns.py:2416 +msgid "DNS Zone" +msgstr "" + +#: ipaserver/plugins/dns.py:2490 +msgid "Default time to live" +msgstr "" + +#: ipaserver/plugins/dns.py:2491 +msgid "Time to live for records without explicit TTL definition" +msgstr "" + +#: ipaserver/plugins/dns.py:2706 +msgid "setting Authoritative nameserver" +msgstr "" + +#: ipaserver/plugins/dns.py:2707 +msgid "It is used only for setting the SOA MNAME attribute." +msgstr "" + +#: ipaserver/plugins/dns.py:2709 +msgid "NS record(s) can be edited in zone apex - '@'. " +msgstr "" + +#: ipaserver/plugins/dns.py:2744 +msgid "" +msgstr "" + +#: ipaserver/plugins/dns.py:2808 +msgid "Nameserver for reverse zone cannot be a relative DNS name" +msgstr "" + +#: ipaserver/plugins/dns.py:2863 +#, python-format +msgid "Deleted DNS zone \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:2926 +msgid "is required" +msgstr "" + +#: ipaserver/plugins/dns.py:3008 +#, python-format +msgid "Disabled DNS zone \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:3019 +#, python-format +msgid "Enabled DNS zone \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:3044 +msgid "DNS resource record" +msgstr "" + +#: ipaserver/plugins/dns.py:3045 +msgid "DNS resource records" +msgstr "" + +#: ipaserver/plugins/dns.py:3052 +msgid "DNS Resource Records" +msgstr "" + +#: ipaserver/plugins/dns.py:3053 +msgid "DNS Resource Record" +msgstr "" + +#: ipaserver/plugins/dns.py:3088 +msgid "DS record must not be in zone apex (RFC 4035 section 2.4)" +msgstr "" + +#: ipaserver/plugins/dns.py:3105 +msgid "" +"out-of-zone data: record name must be a subdomain of the zone or a relative " +"name" +msgstr "" + +#: ipaserver/plugins/dns.py:3116 +#, python-format +msgid "" +"owner of %(types)s records should not be a wildcard domain name (RFC 4592 " +"section 4)" +msgstr "" + +#: ipaserver/plugins/dns.py:3161 +#, python-format +msgid "" +"Reverse zone %(name)s requires exactly %(count)d IP address components, " +"%(user_count)d given" +msgstr "" + +#: ipaserver/plugins/dns.py:3203 +msgid "only master zones can contain records" +msgstr "" + +#: ipaserver/plugins/dns.py:3301 +msgid "only one CNAME record is allowed per name (RFC 2136, section 1.1.5)" +msgstr "" + +#: ipaserver/plugins/dns.py:3307 +msgid "" +"CNAME record is not allowed to coexist with any other record (RFC 1034, " +"section 3.6.2)" +msgstr "" + +#: ipaserver/plugins/dns.py:3315 +msgid "only one DNAME record is allowed per name (RFC 6672, section 2.4)" +msgstr "" + +#: ipaserver/plugins/dns.py:3331 +#, python-format +msgid "" +"NS record is not allowed to coexist with an %(type)s record except when " +"located in a zone root record (RFC 2181, section 6.1)" +msgstr "" + +#: ipaserver/plugins/dns.py:3347 +msgid "" +"DS record requires to coexist with an NS record (RFC 4592 section 4.6, RFC " +"4035 section 2.4)" +msgstr "" + +#: ipaserver/plugins/dns.py:3628 +#, python-format +msgid "Raw value of a DNS record was already set by \"%(name)s\" option" +msgstr "" + +#: ipaserver/plugins/dns.py:3754 +msgid "DNS zone root record cannot be renamed" +msgstr "" + +#: ipaserver/plugins/dns.py:3772 +msgid "DNS records can be only updated one at a time" +msgstr "" + +#: ipaserver/plugins/dns.py:3865 +#, python-format +msgid "Deleted record \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:3958 +#, python-format +msgid "Zone record '%s' cannot be deleted" +msgstr "" + +#: ipaserver/plugins/dns.py:4060 +#, python-format +msgid "Found '%(value)s'" +msgstr "" + +#: ipaserver/plugins/dns.py:4075 +#, python-format +msgid "Host '%(host)s' not found" +msgstr "" + +#: ipaserver/plugins/dns.py:4106 +msgid "DNS configuration options" +msgstr "" + +#: ipaserver/plugins/dns.py:4111 ipaserver/plugins/dns.py:4112 +msgid "DNS Global Configuration" +msgstr "" + +#: ipaserver/plugins/dns.py:4143 +msgid "IPA DNS version" +msgstr "" + +#: ipaserver/plugins/dns.py:4148 +msgid "List of IPA masters configured as DNS servers" +msgstr "" + +#: ipaserver/plugins/dns.py:4154 +msgid "IPA server configured as DNSSec key master" +msgstr "" + +#: ipaserver/plugins/dns.py:4205 +msgid "Global DNS configuration is empty" +msgstr "" + +#: ipaserver/plugins/dns.py:4286 +msgid "DNS forward zone" +msgstr "" + +#: ipaserver/plugins/dns.py:4287 +msgid "DNS forward zones" +msgstr "" + +#: ipaserver/plugins/dns.py:4289 +msgid "DNS Forward Zones" +msgstr "" + +#: ipaserver/plugins/dns.py:4290 +msgid "DNS Forward Zone" +msgstr "" + +#: ipaserver/plugins/dns.py:4397 ipaserver/plugins/dns.py:4447 +msgid "Please specify forwarders." +msgstr "" + +#: ipaserver/plugins/dns.py:4416 +#, python-format +msgid "Deleted DNS forward zone \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:4473 +#, python-format +msgid "Disabled DNS forward zone \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:4479 +#, python-format +msgid "Enabled DNS forward zone \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/dns.py:4502 +msgid "IPA DNS records" +msgstr "" + +#: ipaserver/plugins/dns.py:4506 +msgid "IPA location records" +msgstr "" + +#: ipaserver/plugins/dns.py:4513 +msgid "Update location and IPA server DNS records" +msgstr "" + +#: ipaserver/plugins/dns.py:4524 +msgid "Result of the command" +msgstr "" + +#: ipaserver/plugins/dns.py:4531 +msgid "Dry run" +msgstr "" + +#: ipaserver/plugins/dns.py:4532 +msgid "Do not update records only return expected records" +msgstr "" + +#: ipaserver/plugins/dogtag.py:1251 +msgid "REST API is not logged in." +msgstr "" + +#: ipaserver/plugins/dogtag.py:1273 +#, python-format +msgid "Non-2xx response from CA REST API: %(status)d. %(explanation)s" +msgstr "" + +#: ipaserver/plugins/dogtag.py:1299 +msgid "Unable to communicate with CMS" +msgstr "" + +#: ipaserver/plugins/dogtag.py:1490 ipaserver/plugins/dogtag.py:1576 +#: ipaserver/plugins/dogtag.py:2083 ipaserver/plugins/dogtag.py:2093 +msgid "Response from CA was not valid JSON" +msgstr "" + +#: ipaserver/plugins/hbactest.py:45 +msgid "" +"\n" +"Simulate use of Host-based access controls\n" +"\n" +"HBAC rules control who can access what services on what hosts.\n" +"You can use HBAC to control which users or groups can access a service,\n" +"or group of services, on a target host.\n" +"\n" +"Since applying HBAC rules implies use of a production environment,\n" +"this plugin aims to provide simulation of HBAC rules evaluation without\n" +"having access to the production environment.\n" +"\n" +" Test user coming to a service on a named host against\n" +" existing enabled rules.\n" +"\n" +" ipa hbactest --user= --host= --service=\n" +" [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" +" [--sizelimit= ]\n" +"\n" +" --user, --host, and --service are mandatory, others are optional.\n" +"\n" +" If --rules is specified simulate enabling of the specified rules and test\n" +" the login of the user using only these rules.\n" +"\n" +" If --enabled is specified, all enabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --disabled is specified, all disabled HBAC rules will be added to " +"simulation\n" +"\n" +" If --nodetail is specified, do not return information about rules matched/" +"not matched.\n" +"\n" +" If both --rules and --enabled are specified, apply simulation to --rules " +"_and_\n" +" all IPA enabled rules.\n" +"\n" +" If no --rules specified, simulation is run against all IPA enabled rules.\n" +" By default there is a IPA-wide limit to number of entries fetched, you can " +"change it\n" +" with --sizelimit option.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Use all enabled HBAC rules in IPA database to simulate:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 2. Disable detailed summary of how rules were applied:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --nodetail\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +"\n" +" 3. Test explicitly specified HBAC rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" +" --rules=myrule --rules=my-second-rule\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: myrule\n" +"\n" +" 4. Use all enabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" +" --rules=myrule --rules=my-second-rule --enabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Matched rules: allow_all\n" +"\n" +" 5. Test all disabled HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: new-rule\n" +"\n" +" 6. Test all disabled HBAC rules in IPA database + explicitly specified " +"rules:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" +" --rules=myrule --rules=my-second-rule --disabled\n" +" ---------------------\n" +" Access granted: False\n" +" ---------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +"\n" +" 7. Test all (enabled and disabled) HBAC rules in IPA database:\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\\\n" +" --enabled --disabled\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Not matched rules: my-second-rule\n" +" Not matched rules: my-third-rule\n" +" Not matched rules: myrule\n" +" Not matched rules: new-rule\n" +" Matched rules: allow_all\n" +"\n" +"\n" +"HBACTEST AND TRUSTED DOMAINS\n" +"\n" +"When an external trusted domain is configured in IPA, HBAC rules are also " +"applied\n" +"on users accessing IPA resources from the trusted domain. Trusted domain " +"users and\n" +"groups (and their SIDs) can be then assigned to external groups which can " +"be\n" +"members of POSIX groups in IPA which can be used in HBAC rules and thus " +"allowing\n" +"access to resources protected by the HBAC system.\n" +"\n" +"hbactest plugin is capable of testing access for both local IPA users and " +"users\n" +"from the trusted domains, either by a fully qualified user name or by user " +"SID.\n" +"Such user names need to have a trusted domain specified as a short name\n" +"(DOMAIN\\Administrator) or with a user principal name (UPN), " +"Administrator@ad.test.\n" +"\n" +"Please note that hbactest executed with a trusted domain user as --user " +"parameter\n" +"can be only run by members of \"trust admins\" group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" 1. Test if a user from a trusted domain specified by its shortname " +"matches any\n" +" rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Administrator' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 2. Test if a user from a trusted domain specified by its domain name " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'Administrator@domain.com' --host `hostname` --" +"service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 3. Test if a user from a trusted domain specified by its SID matches any " +"rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-500 \\\\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Matched rules: can_login\n" +"\n" +" 4. Test if other user from a trusted domain specified by its SID matches " +"any rule:\n" +"\n" +" $ ipa hbactest --user S-1-5-21-3035198329-144811719-1378114514-1203 \\" +"\\\n" +" --host `hostname` --service sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +"\n" +" 5. Test if other user from a trusted domain specified by its shortname " +"matches\n" +" any rule:\n" +"\n" +" $ ipa hbactest --user 'DOMAIN\\Otheruser' --host `hostname` --service " +"sshd\n" +" --------------------\n" +" Access granted: True\n" +" --------------------\n" +" Matched rules: allow_all\n" +" Not matched rules: can_login\n" +msgstr "" + +#: ipaserver/plugins/hbactest.py:384 +msgid "Unresolved rules in --rules" +msgstr "" + +#: ipaserver/plugins/hbactest.py:408 ipaserver/plugins/trust.py:345 +msgid "" +"Cannot search in trusted domains without own domain configured. Make sure " +"you have run ipa-adtrust-install on the IPA server first" +msgstr "" + +#: ipaserver/plugins/hbactest.py:497 +#, python-format +msgid "Access granted: %s" +msgstr "" + +#: ipaserver/plugins/idviews.py:72 ipaserver/plugins/idviews.py:123 +#: ipaserver/plugins/idviews.py:131 ipaserver/plugins/idviews.py:352 +#: ipaserver/plugins/idviews.py:839 +msgid "ID View" +msgstr "" + +#: ipaserver/plugins/idviews.py:74 +msgid "system ID View" +msgstr "" + +#: ipaserver/plugins/idviews.py:124 ipaserver/plugins/idviews.py:130 +msgid "ID Views" +msgstr "" + +#: ipaserver/plugins/idviews.py:145 +msgid "User object overrides" +msgstr "" + +#: ipaserver/plugins/idviews.py:149 +msgid "Group object overrides" +msgstr "" + +#: ipaserver/plugins/idviews.py:153 +msgid "Hosts the view applies to" +msgstr "" + +#: ipaserver/plugins/idviews.py:197 +#, python-format +msgid "Added ID View \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:214 +#, python-format +msgid "Deleted ID View \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:227 +#, python-format +msgid "Modified an ID View \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:243 +#, python-format +msgid "%(count)d ID View matched" +msgid_plural "%(count)d ID Views matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/idviews.py:353 +msgid "Default Trust View cannot be applied on hosts" +msgstr "" + +#: ipaserver/plugins/idviews.py:381 ipaserver/plugins/idviews.py:414 +msgid "not found" +msgstr "" + +#: ipaserver/plugins/idviews.py:395 +msgid "ID View cannot be applied to IPA master" +msgstr "" + +#: ipaserver/plugins/idviews.py:412 +msgid "ID View already applied" +msgstr "" + +#: ipaserver/plugins/idviews.py:432 +msgid "value" +msgstr "" + +#: ipaserver/plugins/idviews.py:445 +#, python-format +msgid "ID View applied to %i host." +msgstr "" + +#: ipaserver/plugins/idviews.py:446 +#, python-format +msgid "ID View applied to %i hosts." +msgstr "" + +#: ipaserver/plugins/idviews.py:488 +#, python-format +msgid "ID View cleared from %i host." +msgstr "" + +#: ipaserver/plugins/idviews.py:489 +#, python-format +msgid "ID View cleared from %i hosts." +msgstr "" + +#: ipaserver/plugins/idviews.py:557 +msgid "" +"You are trying to reference a magic private group which is not allowed to be " +"overridden. Try overriding the GID attribute of the corresponding user " +"instead." +msgstr "" + +#: ipaserver/plugins/idviews.py:595 +msgid "IPA object" +msgstr "" + +#: ipaserver/plugins/idviews.py:596 +msgid "" +"system IPA objects (e.g. system groups, user private groups) cannot be " +"overridden" +msgstr "" + +#: ipaserver/plugins/idviews.py:690 +#, python-format +msgid "Anchor '%(anchor)s' could not be resolved." +msgstr "" + +#: ipaserver/plugins/idviews.py:840 +msgid "Default Trust View cannot contain IPA users" +msgstr "" + +#: ipaserver/plugins/idviews.py:884 +msgid "Add a new ID override." +msgstr "" + +#: ipaserver/plugins/idviews.py:885 +#, python-format +msgid "Added ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:900 +msgid "Delete an ID override." +msgstr "" + +#: ipaserver/plugins/idviews.py:901 +#, python-format +msgid "Deleted ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:924 +msgid "Modify an ID override." +msgstr "" + +#: ipaserver/plugins/idviews.py:925 +#, python-format +msgid "Modified an ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:932 +msgid "ID override" +msgstr "" + +#: ipaserver/plugins/idviews.py:933 +msgid "ID overrides cannot be renamed" +msgstr "" + +#: ipaserver/plugins/idviews.py:945 +msgid "Search for an ID override." +msgstr "" + +#: ipaserver/plugins/idviews.py:946 +#, python-format +msgid "%(count)d ID override matched" +msgid_plural "%(count)d ID overrides matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/idviews.py:958 +msgid "Display information about an ID override." +msgstr "" + +#: ipaserver/plugins/idviews.py:970 ipaserver/plugins/idviews.py:974 +msgid "User ID override" +msgstr "" + +#: ipaserver/plugins/idviews.py:971 ipaserver/plugins/idviews.py:973 +msgid "User ID overrides" +msgstr "" + +#: ipaserver/plugins/idviews.py:1093 ipaserver/plugins/idviews.py:1097 +msgid "Group ID override" +msgstr "" + +#: ipaserver/plugins/idviews.py:1094 ipaserver/plugins/idviews.py:1096 +msgid "Group ID overrides" +msgstr "" + +#: ipaserver/plugins/idviews.py:1138 +msgid "Add one or more certificates to the idoverrideuser entry" +msgstr "" + +#: ipaserver/plugins/idviews.py:1139 +#, python-format +msgid "Added certificates to idoverrideuser \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1161 +msgid "Remove one or more certificates to the idoverrideuser entry" +msgstr "" + +#: ipaserver/plugins/idviews.py:1162 +#, python-format +msgid "Removed certificates from idoverrideuser \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1186 +#, python-format +msgid "Added User ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1211 +#, python-format +msgid "Deleted User ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1217 +#, python-format +msgid "Modified an User ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1249 +#, python-format +msgid "%(count)d User ID override matched" +msgid_plural "%(count)d User ID overrides matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/idviews.py:1285 +#, python-format +msgid "Added Group ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1291 +#, python-format +msgid "Deleted Group ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1297 +#, python-format +msgid "Modified an Group ID override \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/idviews.py:1303 +#, python-format +msgid "%(count)d Group ID override matched" +msgid_plural "%(count)d Group ID overrides matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/migration.py:46 +msgid "" +"\n" +"Migration to IPA\n" +"\n" +"Migrate users and groups from an LDAP server to IPA.\n" +"\n" +"This performs an LDAP query against the remote server searching for\n" +"users and groups in a container. In order to migrate passwords you need\n" +"to bind as a user that can read the userPassword attribute on the remote\n" +"server. This is generally restricted to high-level admins such as\n" +"cn=Directory Manager in 389-ds (this is the default bind user).\n" +"\n" +"The default user container is ou=People.\n" +"\n" +"The default group container is ou=Groups.\n" +"\n" +"Users and groups that already exist on the IPA server are skipped.\n" +"\n" +"Two LDAP schemas define how group members are stored: RFC2307 and\n" +"RFC2307bis. RFC2307bis uses member and uniquemember to specify group\n" +"members, RFC2307 uses memberUid. The default schema is RFC2307bis.\n" +"\n" +"The schema compat feature allows IPA to reformat data for systems that\n" +"do not support RFC2307bis. It is recommended that this feature is disabled\n" +"during migration to reduce system overhead. It can be re-enabled after\n" +"migration. To migrate with it enabled use the \"--with-compat\" option.\n" +"\n" +"Migrated users do not have Kerberos credentials, they have only their\n" +"LDAP password. To complete the migration process, users need to go\n" +"to http://ipa.example.com/ipa/migration and authenticate using their\n" +"LDAP password in order to generate their Kerberos credentials.\n" +"\n" +"Migration is disabled by default. Use the command ipa config-mod to\n" +"enable it:\n" +"\n" +" ipa config-mod --enable-migration=TRUE\n" +"\n" +"If a base DN is not provided with --basedn then IPA will use either\n" +"the value of defaultNamingContext if it is set or the first value\n" +"in namingContexts set in the root of the remote LDAP server.\n" +"\n" +"Users are added as members to the default user group. This can be a\n" +"time-intensive task so during migration this is done in a batch\n" +"mode for every 100 users. As a result there will be a window in which\n" +"users will be added to IPA but will not be members of the default\n" +"user group.\n" +"\n" +"EXAMPLES:\n" +"\n" +" The simplest migration, accepting all defaults:\n" +" ipa migrate-ds ldap://ds.example.com:389\n" +"\n" +" Specify the user and group container. This can be used to migrate user\n" +" and group data from an IPA v1 server:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' \\\n" +" --group-container='cn=groups,cn=accounts' \\\n" +" ldap://ds.example.com:389\n" +"\n" +" Since IPA v2 server already contain predefined groups that may collide " +"with\n" +" groups in migrated (IPA v1) server (for example admins, ipausers), users\n" +" having colliding group as their primary group may happen to belong to\n" +" an unknown group on new IPA v2 server.\n" +" Use --group-overwrite-gid option to overwrite GID of already existing " +"groups\n" +" to prevent this issue:\n" +" ipa migrate-ds --group-overwrite-gid \\\n" +" --user-container='cn=users,cn=accounts' \\\n" +" --group-container='cn=groups,cn=accounts' \\\n" +" ldap://ds.example.com:389\n" +"\n" +" Migrated users or groups may have object class and accompanied attributes\n" +" unknown to the IPA v2 server. These object classes and attributes may be\n" +" left out of the migration process:\n" +" ipa migrate-ds --user-container='cn=users,cn=accounts' \\\n" +" --group-container='cn=groups,cn=accounts' \\\n" +" --user-ignore-objectclass=radiusprofile \\\n" +" --user-ignore-attribute=radiusgroupname \\\n" +" ldap://ds.example.com:389\n" +"\n" +"LOGGING\n" +"\n" +"Migration will log warnings and errors to the Apache error log. This\n" +"file should be evaluated post-migration to correct or investigate any\n" +"issues that were discovered.\n" +"\n" +"For every 100 users migrated an info-level message will be displayed to\n" +"give the current progress and duration to make it possible to track\n" +"the progress of migration.\n" +"\n" +"If the log level is debug, either by setting debug = True in\n" +"/etc/ipa/default.conf or /etc/ipa/server.conf, then an entry will be " +"printed\n" +"for each user added plus a summary when the default user group is\n" +"updated.\n" +msgstr "" + +#: ipaserver/plugins/migration.py:145 +#, python-format +msgid "" +"Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." +msgstr "" + +#: ipaserver/plugins/migration.py:146 +#, python-format +msgid "" +"Unable to determine if Kerberos principal %s already exists. Use 'ipa user-" +"mod' to set it manually." +msgstr "" + +#: ipaserver/plugins/migration.py:147 +msgid "" +"Failed to add user to the default group. Use 'ipa group-add-member' to add " +"manually." +msgstr "" + +#: ipaserver/plugins/migration.py:148 +msgid "Migration of LDAP search reference is not supported." +msgstr "" + +#: ipaserver/plugins/migration.py:149 +msgid "Malformed DN" +msgstr "" + +#: ipaserver/plugins/migration.py:194 +#, python-format +msgid "%(user)s is not a POSIX user" +msgstr "" + +#: ipaserver/plugins/migration.py:461 +msgid "" +". Check GID of the existing group. Use --group-overwrite-gid option to " +"overwrite the GID" +msgstr "" + +#: ipaserver/plugins/migration.py:476 +msgid "Invalid LDAP URI." +msgstr "" + +#: ipaserver/plugins/migration.py:678 +#, python-format +msgid "%s to exclude from migration" +msgstr "" + +#: ipaserver/plugins/migration.py:680 +msgid "" +"search results for objects to be migrated\n" +"have been truncated by the server;\n" +"migration process might be incomplete\n" +msgstr "" + +#: ipaserver/plugins/migration.py:769 +#, python-format +msgid "" +"%(container)s LDAP search did not return any result (search base: " +"%(search_base)s, objectclass: %(objectclass)s)" +msgstr "" + +#: ipaserver/plugins/permission.py:40 +msgid "" +"\n" +"Permissions\n" +msgstr "" + +#: ipaserver/plugins/permission.py:42 +msgid "" +"\n" +"A permission enables fine-grained delegation of rights. A permission is\n" +"a human-readable wrapper around a 389-ds Access Control Rule,\n" +"or instruction (ACI).\n" +"A permission grants the right to perform a specific task such as adding a\n" +"user, modifying a group, etc.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:48 +msgid "" +"\n" +"A permission may not contain other permissions.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:50 +msgid "" +"\n" +"* A permission grants access to read, write, add, delete, read, search,\n" +" or compare.\n" +"* A privilege combines similar permissions (for example all the permissions\n" +" needed to add a user).\n" +"* A role grants a set of privileges to users, groups, hosts or hostgroups.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:56 +msgid "" +"\n" +"A permission is made up of a number of different parts:\n" +"\n" +"1. The name of the permission.\n" +"2. The target of the permission.\n" +"3. The rights granted by the permission.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:62 +msgid "" +"\n" +"Rights define what operations are allowed, and may be one or more\n" +"of the following:\n" +"1. write - write one or more attributes\n" +"2. read - read one or more attributes\n" +"3. search - search on one or more attributes\n" +"4. compare - compare one or more attributes\n" +"5. add - add a new entry to the tree\n" +"6. delete - delete an existing entry\n" +"7. all - all permissions are granted\n" +msgstr "" + +#: ipaserver/plugins/permission.py:72 +msgid "" +"\n" +"Note the distinction between attributes and entries. The permissions are\n" +"independent, so being able to add a user does not mean that the user will\n" +"be editable.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:76 +msgid "" +"\n" +"There are a number of allowed targets:\n" +"1. subtree: a DN; the permission applies to the subtree under this DN\n" +"2. target filter: an LDAP filter\n" +"3. target: DN with possible wildcards, specifies entries permission applies " +"to\n" +msgstr "" + +#: ipaserver/plugins/permission.py:81 +msgid "" +"\n" +"Additionally, there are the following convenience options.\n" +"Setting one of these options will set the corresponding attribute(s).\n" +"1. type: a type of object (user, group, etc); sets subtree and target " +"filter.\n" +"2. memberof: apply to members of a group; sets target filter\n" +"3. targetgroup: grant access to modify a specific group (such as granting\n" +" the rights to manage group membership); sets target.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:88 +msgid "" +"\n" +"Managed permissions\n" +msgstr "" + +#: ipaserver/plugins/permission.py:90 +msgid "" +"\n" +"Permissions that come with IPA by default can be so-called \"managed\"\n" +"permissions. These have a default set of attributes they apply to,\n" +"but the administrator can add/remove individual attributes to/from the set.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:94 +msgid "" +"\n" +"Deleting or renaming a managed permission, as well as changing its target,\n" +"is not allowed.\n" +msgstr "" + +#: ipaserver/plugins/permission.py:99 +msgid "" +"\n" +" Add a permission that grants the creation of users:\n" +" ipa permission-add --type=user --permissions=add \"Add Users\"\n" +msgstr "" + +#: ipaserver/plugins/permission.py:102 +msgid "" +"\n" +" Add a permission that grants the ability to manage group membership:\n" +" ipa permission-add --attrs=member --permissions=write --type=group " +"\"Manage Group Members\"\n" +msgstr "" + +#: ipaserver/plugins/permission.py:129 +msgid "must be enclosed in parentheses" +msgstr "" + +#: ipaserver/plugins/permission.py:149 +#, python-format +msgid "\"%s\" is not an object type" +msgstr "" + +#: ipaserver/plugins/permission.py:151 ipaserver/plugins/permission.py:897 +#, python-format +msgid "\"%s\" is not a valid permission type" +msgstr "" + +#: ipaserver/plugins/permission.py:353 +#, python-format +msgid "Deprecated; use %s" +msgstr "" + +#: ipaserver/plugins/permission.py:370 +#, python-format +msgid "Permission with unknown flag %s may not be modified or removed" +msgstr "" + +#: ipaserver/plugins/permission.py:374 +msgid "A SYSTEM permission may not be modified or removed" +msgstr "" + +#: ipaserver/plugins/permission.py:624 +#, python-format +msgid "Entry %s not found" +msgstr "" + +#: ipaserver/plugins/permission.py:716 +#, python-format +msgid "The ACI for permission %(name)s was not found in %(dn)s " +msgstr "" + +#: ipaserver/plugins/permission.py:820 +msgid "" +"cannot specify full target filter and extra target filter simultaneously" +msgstr "" + +#: ipaserver/plugins/permission.py:843 +#, python-format +msgid "option was renamed; use %s" +msgstr "" + +#: ipaserver/plugins/permission.py:847 +#, python-format +msgid "Cannot use %(old_name)s with %(new_name)s" +msgstr "" + +#: ipaserver/plugins/permission.py:861 ipaserver/plugins/permission.py:876 +#, python-format +msgid "%s: group not found" +msgstr "" + +#: ipaserver/plugins/permission.py:871 +msgid "target and targetgroup are mutually exclusive" +msgstr "" + +#: ipaserver/plugins/permission.py:892 +msgid "subtree and type are mutually exclusive" +msgstr "" + +#: ipaserver/plugins/permission.py:930 +msgid "Bad search filter" +msgstr "" + +#: ipaserver/plugins/permission.py:940 +#, python-format +msgid "Entry %s does not exist" +msgstr "" + +#: ipaserver/plugins/permission.py:949 +msgid "" +"there must be at least one target entry specifier (e.g. target, " +"targetfilter, attrs)" +msgstr "" + +#: ipaserver/plugins/permission.py:961 ipaserver/plugins/permission.py:989 +#, python-format +msgid "Added permission \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/permission.py:1014 +msgid "attrs and included attributes are mutually exclusive" +msgstr "" + +#: ipaserver/plugins/permission.py:1046 +#, python-format +msgid "Cannot store permission ACI to %s" +msgstr "" + +#: ipaserver/plugins/permission.py:1057 +#, python-format +msgid "Deleted permission \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/permission.py:1077 +msgid "cannot delete managed permissions" +msgstr "" + +#: ipaserver/plugins/permission.py:1083 +#, python-format +msgid "ACI of permission %s was not found" +msgstr "" + +#: ipaserver/plugins/permission.py:1092 +#, python-format +msgid "Modified permission \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/permission.py:1125 +msgid "cannot rename managed permissions" +msgstr "" + +#: ipaserver/plugins/permission.py:1132 ipaserver/plugins/permission.py:1136 +msgid "not modifiable on managed permissions" +msgstr "" + +#: ipaserver/plugins/permission.py:1143 +msgid "only available on managed permissions" +msgstr "" + +#: ipaserver/plugins/permission.py:1150 ipaserver/plugins/permission.py:1276 +msgid "attrs and included/excluded attributes are mutually exclusive" +msgstr "" + +#: ipaserver/plugins/permission.py:1161 +msgid "cannot set bindtype for a permission that is assigned to a privilege" +msgstr "" + +#: ipaserver/plugins/permission.py:1265 +#, python-format +msgid "%(count)d permission matched" +msgid_plural "%(count)d permissions matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/privilege.py:76 +#, python-format +msgid "" +"cannot add permission \"%(perm)s\" with bindtype \"%(bindtype)s\" to a " +"privilege" +msgstr "" + +#: ipaserver/plugins/privilege.py:149 +msgid "Privilege" +msgstr "" + +#: ipaserver/plugins/privilege.py:169 +#, python-format +msgid "Added privilege \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/privilege.py:176 +#, python-format +msgid "Deleted privilege \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/privilege.py:183 +#, python-format +msgid "Modified privilege \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/privilege.py:191 +#, python-format +msgid "%(count)d privilege matched" +msgid_plural "%(count)d privileges matched" +msgstr[0] "" +msgstr[1] "" + +#: ipaserver/plugins/schema.py:24 +msgid "" +"\n" +"API Schema\n" +msgstr "" + +#: ipaserver/plugins/schema.py:26 +msgid "" +"\n" +"Provides API introspection capabilities.\n" +msgstr "" + +#: ipaserver/plugins/schema.py:30 +msgid "" +"\n" +" Show user-find details:\n" +" ipa command-show user-find\n" +msgstr "" + +#: ipaserver/plugins/schema.py:33 +msgid "" +"\n" +" Find user-find parameters:\n" +" ipa param-find user-find\n" +msgstr "" + +#: ipaserver/plugins/schema.py:54 +msgid "Documentation" +msgstr "" + +#: ipaserver/plugins/schema.py:59 +msgid "Exclude from" +msgstr "" + +#: ipaserver/plugins/schema.py:64 +msgid "Include in" +msgstr "" + +#: ipaserver/plugins/schema.py:135 +msgid "Help topic" +msgstr "" + +#: ipaserver/plugins/schema.py:172 +msgid "Parameters" +msgstr "" + +#: ipaserver/plugins/schema.py:207 +msgid "Method of" +msgstr "" + +#: ipaserver/plugins/schema.py:212 +msgid "Method name" +msgstr "" + +#: ipaserver/plugins/schema.py:270 +msgid "Display information about a command." +msgstr "" + +#: ipaserver/plugins/schema.py:275 +msgid "Search for commands." +msgstr "" + +#: ipaserver/plugins/schema.py:280 +msgid "Return command defaults" +msgstr "" + +#: ipaserver/plugins/schema.py:291 +#, python-brace-format +msgid "{oname}: {command_name} not found" +msgstr "" + +#: ipaserver/plugins/schema.py:344 +msgid "Display information about a class." +msgstr "" + +#: ipaserver/plugins/schema.py:349 +msgid "Search for classes." +msgstr "" + +#: ipaserver/plugins/schema.py:436 +msgid "Display information about a help topic." +msgstr "" + +#: ipaserver/plugins/schema.py:441 +msgid "Search for help topics." +msgstr "" + +#: ipaserver/plugins/schema.py:453 +msgid "Required" +msgstr "" + +#: ipaserver/plugins/schema.py:458 +msgid "Multi-value" +msgstr "" + +#: ipaserver/plugins/schema.py:508 +msgid "Always ask" +msgstr "" + +#: ipaserver/plugins/schema.py:513 +msgid "CLI metavar" +msgstr "" + +#: ipaserver/plugins/schema.py:518 +msgid "CLI name" +msgstr "" + +#: ipaserver/plugins/schema.py:523 +msgid "Confirm (password)" +msgstr "" + +#: ipaserver/plugins/schema.py:528 +msgid "Default" +msgstr "" + +#: ipaserver/plugins/schema.py:533 +msgid "Default from" +msgstr "" + +#: ipaserver/plugins/schema.py:538 +msgid "Label" +msgstr "" + +#: ipaserver/plugins/schema.py:543 +msgid "Convert on server" +msgstr "" + +#: ipaserver/plugins/schema.py:548 +msgid "Option group" +msgstr "" + +#: ipaserver/plugins/schema.py:553 +msgid "Sensitive" +msgstr "" + +#: ipaserver/plugins/schema.py:558 +msgid "Positional argument" +msgstr "" + +#: ipaserver/plugins/schema.py:643 +#, python-format +msgid "%(metaobject)s: %(oname)s not found" +msgstr "" + +#: ipaserver/plugins/schema.py:682 +msgid "Display information about a command parameter." +msgstr "" + +#: ipaserver/plugins/schema.py:687 +msgid "Search command parameters." +msgstr "" + +#: ipaserver/plugins/schema.py:744 +#, python-format +msgid "%(command_name)s: %(oname)s not found" +msgstr "" + +#: ipaserver/plugins/schema.py:769 +msgid "Display information about a command output." +msgstr "" + +#: ipaserver/plugins/schema.py:774 +msgid "Search for command outputs." +msgstr "" + +#: ipaserver/plugins/schema.py:779 +msgid "Store and provide schema for commands and topics" +msgstr "" + +#: ipaserver/plugins/schema.py:785 +msgid "Fingerprint of schema cached by client" msgstr "" #: ipaserver/plugins/sudorule.py:43 @@ -25881,740 +26284,492 @@ msgstr "" msgid "RunAsGroup does not accept '%(name)s' as a group name" msgstr "" -#: ipaserver/plugins/baseldap.py:101 -msgid "Member service groups" -msgstr "" - -#: ipaserver/plugins/baseldap.py:110 -msgid "Member HBAC service groups" -msgstr "" - -#: ipaserver/plugins/baseldap.py:127 -msgid "Member ID user overrides" -msgstr "" - -#: ipaserver/plugins/baseldap.py:129 -msgid "Indirect Member ID user overrides" -msgstr "" - -#: ipaserver/plugins/baseldap.py:146 -msgid "Indirect Member permissions" -msgstr "" - -#: ipaserver/plugins/baseldap.py:149 -msgid "Indirect Member HBAC service" -msgstr "" - -#: ipaserver/plugins/baseldap.py:152 -msgid "Indirect Member HBAC service group" -msgstr "" - -#: ipaserver/plugins/baseldap.py:213 -msgid "Invalid format. Should be name=value" -msgstr "" - -#: ipaserver/plugins/baseldap.py:584 -msgid "An IPA master host cannot be deleted or disabled" -msgstr "" - -#: ipaserver/plugins/baseldap.py:615 -msgid "entry" -msgstr "" - -#: ipaserver/plugins/baseldap.py:616 -msgid "entries" -msgstr "" - -#: ipaserver/plugins/baseldap.py:654 ipaserver/plugins/baseldap.py:655 -msgid "Entry" -msgstr "" - -#: ipaserver/plugins/baseldap.py:658 -#, python-format -msgid "container entry (%(container)s) not found" -msgstr "" - -#: ipaserver/plugins/baseldap.py:659 -#, python-format -msgid "%(parent)s: %(oname)s not found" -msgstr "" - -#: ipaserver/plugins/baseldap.py:661 -#, python-format -msgid "%(oname)s with name \"%(pkey)s\" already exists" -msgstr "" - -#: ipaserver/plugins/baseldap.py:954 ipaserver/plugins/baseldap.py:962 -#, python-format -msgid "attribute \"%(attribute)s\" not allowed" -msgstr "" - -#: ipaserver/plugins/baseldap.py:967 -#, python-format -msgid "these attributes are not allowed: %(attrs)s" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1025 -msgid "attribute is not configurable" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1128 -msgid "No such attribute on this entry" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1484 -#, python-format -msgid "Rename the %(ldap_obj_name)s object" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1582 ipaserver/plugins/baseldap.py:2490 -msgid "the entry was deleted while being modified" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1715 ipaserver/plugins/baseldap.py:2217 -#, python-format -msgid "%s" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1758 ipaserver/plugins/baseldap.py:2241 -#, python-format -msgid "%s to add" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1857 ipaserver/plugins/baseldap.py:2340 -#, python-format -msgid "%s to remove" -msgstr "" - -#: ipaserver/plugins/baseldap.py:1965 -#, python-format -msgid "" -"Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." -msgstr "" - -#: ipaserver/plugins/baseldap.py:1966 -#, python-format -msgid "" -"Search for %(searched_object)s without these %(relationship)s " -"%(ldap_object)s." -msgstr "" - -#: ipaserver/plugins/baseldap.py:2521 -#, python-format -msgid "added attribute value to entry %(value)s" -msgstr "" - -#: ipaserver/plugins/baseldap.py:2535 -#, python-format -msgid "removed attribute values from entry %(value)s" -msgstr "" - -#: ipaserver/plugins/baseldap.py:2544 -msgid "one or more values to remove" -msgstr "" - -#: ipaserver/plugins/baseuser.py:57 +#: ipaserver/plugins/trust.py:83 msgid "" "\n" -"Baseuser\n" +"Cross-realm trusts\n" "\n" -"This contains common definitions for user/stageuser\n" -msgstr "" - -#: ipaserver/plugins/baseuser.py:88 -msgid "must be TRUE or FALSE" -msgstr "" - -#: ipaserver/plugins/baseuser.py:145 -msgid "" -"Object class ipaNTUserAttrs is missing, user entry cannot have SMB " -"attributes." -msgstr "" - -#: ipaserver/plugins/baseuser.py:271 -msgid "User password expiration" -msgstr "" - -#: ipaserver/plugins/baseuser.py:412 -msgid "SMB logon script path" -msgstr "" - -#: ipaserver/plugins/baseuser.py:417 -msgid "SMB profile path" -msgstr "" - -#: ipaserver/plugins/baseuser.py:422 -msgid "SMB Home Directory" -msgstr "" - -#: ipaserver/plugins/baseuser.py:427 -msgid "SMB Home Directory Drive" -msgstr "" - -#: ipaserver/plugins/baseuser.py:451 ipaserver/plugins/baseuser.py:455 -#, python-format -msgid "invalid e-mail format: %(email)s" -msgstr "" - -#: ipaserver/plugins/baseuser.py:482 -#, python-format -msgid "manager %(manager)s not found" -msgstr "" - -#: ipaserver/plugins/baseuser.py:832 -msgid "Issuer of the certificate" -msgstr "" - -#: ipaserver/plugins/baseuser.py:839 -msgid "Subject of the certificate" -msgstr "" - -#: ipaserver/plugins/baseuser.py:884 -msgid "cannot have an empty subject" -msgstr "" - -#: ipaserver/plugins/baseuser.py:924 -msgid "cannot specify both subject/issuer and certificate" -msgstr "" - -#: ipaserver/plugins/baseuser.py:928 -msgid "cannot specify both subject/issuer and ipacertmapdata" -msgstr "" - -#: ipaserver/plugins/baseuser.py:953 -#, python-format -msgid "Added certificate mappings to user \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/baseuser.py:972 -#, python-format -msgid "Removed certificate mappings from user \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/certmap.py:50 -msgid "" +"Manage trust relationship between IPA and Active Directory domains.\n" "\n" -"Certificate Identity Mapping\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:52 -msgid "" +"In order to allow users from a remote domain to access resources in IPA " +"domain,\n" +"trust relationship needs to be established. Currently IPA supports only " +"trusts\n" +"between IPA and Active Directory domains under control of Windows Server " +"2008\n" +"or later, with functional level 2008 or later.\n" "\n" -"Manage Certificate Identity Mapping configuration and rules.\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:54 -msgid "" +"Please note that DNS on both IPA and Active Directory domain sides should " +"be\n" +"configured properly to discover each other. Trust relationship relies on\n" +"ability to discover special resources in the other domain via DNS records.\n" "\n" -"IPA supports the use of certificates for authentication. Certificates can\n" -"either be stored in the user entry (full certificate in the usercertificate\n" -"attribute), or simply linked to the user entry through a mapping.\n" -"This code enables the management of the rules allowing to link a\n" -"certificate to a user entry.\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:62 -msgid "" +"Examples:\n" "\n" -" Display the Certificate Identity Mapping global configuration:\n" -" ipa certmapconfig-show\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:65 -msgid "" +"1. Establish cross-realm trust with Active Directory using AD administrator\n" +" credentials:\n" "\n" -" Modify Certificate Identity Mapping global configuration:\n" -" ipa certmapconfig-mod --promptusername=TRUE\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:68 -msgid "" +" ipa trust-add --type=ad --admin --password\n" "\n" -" Create a new Certificate Identity Mapping Rule:\n" -" ipa certmaprule-add rule1 --desc=\"Link certificate with subject and " -"issuer\"\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:71 -msgid "" +"2. List all existing trust relationships:\n" "\n" -" Modify a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-mod rule1 --maprule=\"\"\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:74 -msgid "" +" ipa trust-find\n" "\n" -" Disable a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-disable rule1\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:77 -msgid "" +"3. Show details of the specific trust relationship:\n" "\n" -" Enable a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-enable rule1\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:80 -msgid "" +" ipa trust-show \n" "\n" -" Display information about a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-show rule1\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:83 -msgid "" +"4. Delete existing trust relationship:\n" "\n" -" Find all Certificate Identity Mapping Rules with the specified domain:\n" -" ipa certmaprule-find --domain example.com\n" -msgstr "" - -#: ipaserver/plugins/certmap.py:86 -msgid "" +" ipa trust-del \n" "\n" -" Delete a Certificate Identity Mapping Rule:\n" -" ipa certmaprule-del rule1\n" +"Once trust relationship is established, remote users will need to be mapped\n" +"to local POSIX groups in order to actually use IPA resources. The mapping\n" +"should be done via use of external membership of non-POSIX group and then\n" +"this group should be included into one of local POSIX groups.\n" +"\n" +"Example:\n" +"\n" +"1. Create group for the trusted domain admins' mapping and their local " +"POSIX\n" +"group:\n" +"\n" +" ipa group-add --desc=' admins external map' " +"ad_admins_external --external\n" +" ipa group-add --desc=' admins' ad_admins\n" +"\n" +"2. Add security identifier of Domain Admins of the to the\n" +" ad_admins_external group:\n" +"\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" +"\n" +"3. Allow members of ad_admins_external group to be associated with\n" +" ad_admins POSIX group:\n" +"\n" +" ipa group-add-member ad_admins --groups ad_admins_external\n" +"\n" +"4. List members of external members of ad_admins_external group to see\n" +" their SIDs:\n" +"\n" +" ipa group-show ad_admins_external\n" +"\n" +"\n" +"GLOBAL TRUST CONFIGURATION\n" +"\n" +"When IPA AD trust subpackage is installed and ipa-adtrust-install is run, a\n" +"local domain configuration (SID, GUID, NetBIOS name) is generated. These\n" +"identifiers are then used when communicating with a trusted domain of the\n" +"particular type.\n" +"\n" +"1. Show global trust configuration for Active Directory type of trusts:\n" +"\n" +" ipa trustconfig-show --type ad\n" +"\n" +"2. Modify global configuration for all trusts of Active Directory type and " +"set\n" +" a different fallback primary group (fallback primary group GID is used as " +"a\n" +" primary user GID if user authenticating to IPA domain does not have any\n" +" other primary GID already set):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"another AD group" +"\"\n" +"\n" +"3. Change primary fallback group back to default hidden group (any group " +"with\n" +" posixGroup object class is allowed):\n" +"\n" +" ipa trustconfig-mod --type ad --fallback-primary-group \"Default SMB Group" +"\"\n" msgstr "" -#: ipaserver/plugins/certmap.py:142 +#: ipaserver/plugins/trust.py:226 #, python-format msgid "" -"The domain(s) \"%s\" cannot be used to apply altSecurityIdentities check." +" Alternatively, following servers are capable of running this command: " +"%(masters)s" msgstr "" -#: ipaserver/plugins/certmap.py:149 +#: ipaserver/plugins/trust.py:239 ipaserver/plugins/trust.py:872 +#: ipaserver/plugins/trust.py:888 ipaserver/plugins/trust.py:909 +#: ipaserver/plugins/trust.py:919 ipaserver/plugins/trust.py:1072 +#: ipaserver/plugins/trust.py:1107 +msgid "AD Trust setup" +msgstr "" + +#: ipaserver/plugins/trust.py:250 msgid "" -"The mapping rule with altSecurityIdentities should be applied to a trusted " -"Active Directory domain but no domain was associated with the rule." +"Cannot perform the selected command without Samba 4 support installed. Make " +"sure you have installed server-trust-ad sub-package of IPA." msgstr "" -#: ipaserver/plugins/certmap.py:176 -#, python-format -msgid "The domain %s is neither IPA domain nor a trusteddomain." -msgstr "" - -#: ipaserver/plugins/certmap.py:186 -msgid "Certificate Identity Mapping configuration options" -msgstr "" - -#: ipaserver/plugins/certmap.py:191 ipaserver/plugins/certmap.py:192 -msgid "Certificate Identity Mapping Global Configuration" -msgstr "" - -#: ipaserver/plugins/certmap.py:198 -msgid "Prompt for the username" -msgstr "" - -#: ipaserver/plugins/certmap.py:199 +#: ipaserver/plugins/trust.py:260 msgid "" -"Prompt for the username when multiple identities are mapped to a certificate" +"Cannot perform the selected command without Samba 4 instance configured on " +"this machine. Make sure you have run ipa-adtrust-install on this server." msgstr "" -#: ipaserver/plugins/certmap.py:229 -msgid "Modify Certificate Identity Mapping configuration." +#: ipaserver/plugins/trust.py:474 +msgid "" +"Fetching domains from trusted forest failed. See details in the error_log" msgstr "" -#: ipaserver/plugins/certmap.py:234 -msgid "Show the current Certificate Identity Mapping configuration." +#: ipaserver/plugins/trust.py:487 +msgid "trust" msgstr "" -#: ipaserver/plugins/certmap.py:243 ipaserver/plugins/certmap.py:247 -msgid "Certificate Identity Mapping Rules" +#: ipaserver/plugins/trust.py:488 +msgid "trusts" msgstr "" -#: ipaserver/plugins/certmap.py:244 ipaserver/plugins/certmap.py:246 -msgid "Certificate Identity Mapping Rule" +#: ipaserver/plugins/trust.py:531 +msgid "Trust" msgstr "" -#: ipaserver/plugins/certmap.py:274 -msgid "Certificate Identity Mapping Rule name" +#: ipaserver/plugins/trust.py:549 +msgid "SID blocklist incoming" msgstr "" -#: ipaserver/plugins/certmap.py:280 -msgid "Certificate Identity Mapping Rule description" +#: ipaserver/plugins/trust.py:553 +msgid "SID blocklist outgoing" msgstr "" -#: ipaserver/plugins/certmap.py:285 -msgid "Mapping rule" +#: ipaserver/plugins/trust.py:569 +msgid "UPN suffixes" msgstr "" -#: ipaserver/plugins/certmap.py:286 -msgid "Rule used to map the certificate with a user entry" +#: ipaserver/plugins/trust.py:586 +#, python-brace-format +msgid "invalid SID: {SID}" msgstr "" -#: ipaserver/plugins/certmap.py:291 -msgid "Matching rule" -msgstr "" - -#: ipaserver/plugins/certmap.py:292 -msgid "Rule used to check if a certificate can be used for authentication" -msgstr "" - -#: ipaserver/plugins/certmap.py:299 -msgid "Domain where the user entry will be searched" -msgstr "" - -#: ipaserver/plugins/certmap.py:305 -msgid "Priority of the rule (higher number means lower priority" -msgstr "" - -#: ipaserver/plugins/certmap.py:356 -msgid "Create a new Certificate Identity Mapping Rule." -msgstr "" - -#: ipaserver/plugins/certmap.py:358 -#, python-format -msgid "Added Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/certmap.py:369 -msgid "Modify a Certificate Identity Mapping Rule." -msgstr "" - -#: ipaserver/plugins/certmap.py:371 -#, python-format -msgid "Modified Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/certmap.py:392 -msgid "Search for Certificate Identity Mapping Rules." -msgstr "" - -#: ipaserver/plugins/certmap.py:395 -#, python-format -msgid "%(count)d Certificate Identity Mapping Rule matched" -msgid_plural "%(count)d Certificate Identity Mapping Rules matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/certmap.py:402 -msgid "Display information about a Certificate Identity Mapping Rule." -msgstr "" - -#: ipaserver/plugins/certmap.py:408 -msgid "Delete a Certificate Identity Mapping Rule." -msgstr "" - -#: ipaserver/plugins/certmap.py:410 -#, python-format -msgid "Deleted Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/certmap.py:415 -msgid "Enable a Certificate Identity Mapping Rule." -msgstr "" - -#: ipaserver/plugins/certmap.py:417 -#, python-format -msgid "Enabled Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/certmap.py:444 -msgid "Disable a Certificate Identity Mapping Rule." -msgstr "" - -#: ipaserver/plugins/certmap.py:446 -#, python-format -msgid "Disabled Certificate Identity Mapping Rule \"%(value)s\"" -msgstr "" - -#: ipaserver/plugins/certmap.py:500 -msgid "Failed to connect to sssd over SystemBus. See details in the error_log" -msgstr "" - -#: ipaserver/plugins/certmap.py:554 -msgid "Failed to find users over SystemBus. See details in the error_log" -msgstr "" - -#: ipaserver/plugins/certmap.py:571 -msgid "User logins" -msgstr "" - -#: ipaserver/plugins/certmap.py:579 +#: ipaserver/plugins/trust.py:655 msgid "" "\n" -" Search for users matching the provided certificate.\n" +"Add new trust to use.\n" "\n" -" This command relies on SSSD to retrieve the list of matching users and\n" -" may return cached data. For more information on purging SSSD cache,\n" -" please refer to sss_cache documentation.\n" +"This command establishes trust relationship to another domain\n" +"which becomes 'trusted'. As result, users of the trusted domain\n" +"may access resources of this domain.\n" +"\n" +"Only trusts to Active Directory domains are supported right now.\n" +"\n" +"The command can be safely run multiple times against the same domain,\n" +"this will cause change to trust relationship credentials on both\n" +"sides.\n" +"\n" +"Note that if the command was previously run with a specific range type,\n" +"or with automatic detection of the range type, and you want to configure a\n" +"different range type, you may need to delete first the ID range using\n" +"ipa idrange-del before retrying the command with the desired range type.\n" " " msgstr "" -#: ipaserver/plugins/certmap.py:587 +#: ipaserver/plugins/trust.py:713 +msgid "Type of trusted domain ID range, one of allowed values" +msgstr "" + +#: ipaserver/plugins/trust.py:725 +msgid "External trust" +msgstr "" + +#: ipaserver/plugins/trust.py:727 +msgid "" +"Establish external trust to a domain in another forest. The trust is not " +"transitive beyond the domain." +msgstr "" + +#: ipaserver/plugins/trust.py:733 #, python-format -msgid "%(count)s user matched" -msgid_plural "%(count)s users matched" +msgid "Added Active Directory trust for realm \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/trust.py:734 +#, python-format +msgid "Re-established trust to domain \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/trust.py:830 +msgid "missing base_id" +msgstr "" + +#: ipaserver/plugins/trust.py:832 +msgid "pysss_murmur is not available on the server and no base-id is given." +msgstr "" + +#: ipaserver/plugins/trust.py:842 +msgid "trust type" +msgstr "" + +#: ipaserver/plugins/trust.py:843 +msgid "only \"ad\" is supported" +msgstr "" + +#: ipaserver/plugins/trust.py:850 +msgid "" +"Cannot establish a trust to AD deployed in the same domain as IPA. Such " +"setup is not supported." +msgstr "" + +#: ipaserver/plugins/trust.py:863 +msgid "Realm-domain mismatch" +msgstr "" + +#: ipaserver/plugins/trust.py:864 +msgid "" +"To establish trust with Active Directory, the domain name and the realm name " +"of the IPA server must match" +msgstr "" + +#: ipaserver/plugins/trust.py:890 +#, python-format +msgid "" +"Trusted domain %(domain)s is included among IPA realm domains. It needs to " +"be removed prior to establishing the trust. See the \"ipa realmdomains-mod --" +"del-domain\" command." +msgstr "" + +#: ipaserver/plugins/trust.py:911 +msgid "Trusted domain and administrator account use different realms" +msgstr "" + +#: ipaserver/plugins/trust.py:920 +msgid "Realm administrator password should be specified" +msgstr "" + +#: ipaserver/plugins/trust.py:941 +msgid "id range type" +msgstr "" + +#: ipaserver/plugins/trust.py:943 +msgid "" +"Only the ipa-ad-trust and ipa-ad-trust-posix are allowed values for --range-" +"type when adding an AD trust." +msgstr "" + +#: ipaserver/plugins/trust.py:953 +msgid "id range" +msgstr "" + +#: ipaserver/plugins/trust.py:955 +msgid "" +"An id range already exists for this trust. You should either delete the old " +"range, or exclude --base-id/--range-size options from the command." +msgstr "" + +#: ipaserver/plugins/trust.py:977 +msgid "range exists" +msgstr "" + +#: ipaserver/plugins/trust.py:979 +msgid "" +"ID range with the same name but different domain SID already exists. The ID " +"range for the new trusted domain must be created manually." +msgstr "" + +#: ipaserver/plugins/trust.py:987 +msgid "range type change" +msgstr "" + +#: ipaserver/plugins/trust.py:988 +msgid "" +"ID range for the trusted domain already exists, but it has a different type. " +"Please remove the old range manually, or do not enforce type via --range-" +"type option." +msgstr "" + +#: ipaserver/plugins/trust.py:1026 +#, python-brace-format +msgid "Unable to resolve domain controller for {domain} domain. " +msgstr "" + +#: ipaserver/plugins/trust.py:1040 +msgid "" +"Forward policy is defined for it in IPA DNS, perhaps forwarder points to " +"incorrect host?" +msgstr "" + +#: ipaserver/plugins/trust.py:1046 +#, python-brace-format +msgid "" +"IPA manages DNS, please verify your DNS configuration and make sure that " +"service records of the '{domain}' domain can be resolved. Examples how to " +"configure DNS with CLI commands or the Web UI can be found in the " +"documentation. " +msgstr "" + +#: ipaserver/plugins/trust.py:1058 +#, python-brace-format +msgid "" +"Since IPA does not manage DNS records, ensure DNS is configured to resolve " +"'{domain}' domain from IPA hosts and back." +msgstr "" + +#: ipaserver/plugins/trust.py:1073 +msgid "Unable to verify write permissions to the AD" +msgstr "" + +#: ipaserver/plugins/trust.py:1108 +msgid "Not enough arguments specified to perform trust setup" +msgstr "" + +#: ipaserver/plugins/trust.py:1116 +#, python-format +msgid "Deleted trust \"%(value)s\"" +msgstr "" + +#: ipaserver/plugins/trust.py:1121 +msgid "" +"\n" +" Modify a trust (for future use).\n" +"\n" +" Currently only the default option to modify the LDAP attributes is\n" +" available. More specific options will be added in coming releases.\n" +" " +msgstr "" + +#: ipaserver/plugins/trust.py:1128 +#, python-format +msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" +msgstr "" + +#: ipaserver/plugins/trust.py:1146 +#, python-format +msgid "%(count)d trust matched" +msgid_plural "%(count)d trusts matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/config.py:50 +#: ipaserver/plugins/trust.py:1235 +msgid "trust configuration" +msgstr "" + +#: ipaserver/plugins/trust.py:1241 ipaserver/plugins/trust.py:1242 +msgid "Global Trust Configuration" +msgstr "" + +#: ipaserver/plugins/trust.py:1267 +msgid "IPA AD trust agents" +msgstr "" + +#: ipaserver/plugins/trust.py:1268 +msgid "IPA servers configured as AD trust agents" +msgstr "" + +#: ipaserver/plugins/trust.py:1273 +msgid "IPA AD trust controllers" +msgstr "" + +#: ipaserver/plugins/trust.py:1274 +msgid "IPA servers configured as AD trust controllers" +msgstr "" + +#: ipaserver/plugins/trust.py:1288 +msgid "unsupported trust type" +msgstr "" + +#: ipaserver/plugins/trust.py:1355 +#, python-format +msgid "Modified \"%(value)s\" trust configuration" +msgstr "" + +#: ipaserver/plugins/trust.py:1420 +msgid "SID" +msgstr "" + +#: ipaserver/plugins/trust.py:1546 +msgid "sidgen_was_run" +msgstr "" + +#: ipaserver/plugins/trust.py:1548 msgid "" -"\n" -"Server configuration\n" -"\n" -"Manage the default values that IPA uses and some of its tuning parameters.\n" -"\n" -"NOTES:\n" -"\n" -"The password notification value (--pwdexpnotify) is stored here so it will\n" -"be replicated. It is not currently used to notify users in advance of an\n" -"expiring password.\n" -"\n" -"Some attributes are read-only, provided only for information purposes. " -"These\n" -"include:\n" -"\n" -"Certificate Subject base: the configured certificate subject base,\n" -" e.g. O=EXAMPLE.COM. This is configurable only at install time.\n" -"Password plug-in features: currently defines additional hashes that the\n" -" password will generate (there may be other conditions).\n" -"\n" -"When setting the order list for mapping SELinux users you may need to\n" -"quote the value so it isn't interpreted by the shell.\n" -"\n" -"The maximum length of a hostname in Linux is controlled by\n" -"MAXHOSTNAMELEN in the kernel and defaults to 64. Some other operating\n" -"systems, Solaris for example, allows hostnames up to 255 characters.\n" -"This option will allow flexibility in length but by default limiting\n" -"to the Linux maximum length.\n" -"\n" -"EXAMPLES:\n" -"\n" -" Show basic server configuration:\n" -" ipa config-show\n" -"\n" -" Show all configuration options:\n" -" ipa config-show --all\n" -"\n" -" Change maximum username length to 99 characters:\n" -" ipa config-mod --maxusername=99\n" -"\n" -" Change maximum host name length to 255 characters:\n" -" ipa config-mod --maxhostname=255\n" -"\n" -" Increase default time and size limits for maximum IPA server search:\n" -" ipa config-mod --searchtimelimit=10 --searchrecordslimit=2000\n" -"\n" -" Set default user e-mail domain:\n" -" ipa config-mod --emaildomain=example.com\n" -"\n" -" Enable migration mode to make \"ipa migrate-ds\" command operational:\n" -" ipa config-mod --enable-migration=TRUE\n" -"\n" -" Define SELinux user map order:\n" -" ipa config-mod --ipaselinuxusermaporder='guest_u:s0$xguest_u:s0$user_u:s0-" -"s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" +"This command relies on the existence of the \"editors\" group, but this " +"group was not found." msgstr "" -#: ipaserver/plugins/config.py:116 -msgid "must be at least 10" +#: ipaserver/plugins/trust.py:1567 +msgid "trust domain" msgstr "" -#: ipaserver/plugins/config.py:124 -msgid "configuration options" +#: ipaserver/plugins/trust.py:1568 +msgid "trust domains" msgstr "" -#: ipaserver/plugins/config.py:160 ipaserver/plugins/config.py:161 -msgid "Configuration" +#: ipaserver/plugins/trust.py:1576 +msgid "Trusted domains" msgstr "" -#: ipaserver/plugins/config.py:172 -msgid "Maximum hostname length" +#: ipaserver/plugins/trust.py:1577 +msgid "Trusted domain" msgstr "" -#: ipaserver/plugins/config.py:276 ipaserver/plugins/config.py:277 -msgid "Enable adding subids to new users" +#: ipaserver/plugins/trust.py:1591 +msgid "Domain enabled" msgstr "" -#: ipaserver/plugins/config.py:281 -msgid "IPA masters" -msgstr "" - -#: ipaserver/plugins/config.py:282 -msgid "List of all IPA masters" -msgstr "" - -#: ipaserver/plugins/config.py:287 -msgid "Hidden IPA masters" -msgstr "" - -#: ipaserver/plugins/config.py:288 -msgid "List of all hidden IPA masters" -msgstr "" - -#: ipaserver/plugins/config.py:293 -msgid "IPA master capable of PKINIT" -msgstr "" - -#: ipaserver/plugins/config.py:294 -msgid "IPA master which can process PKINIT requests" -msgstr "" - -#: ipaserver/plugins/config.py:299 -msgid "IPA CA servers" -msgstr "" - -#: ipaserver/plugins/config.py:300 -msgid "IPA servers configured as certificate authority" -msgstr "" - -#: ipaserver/plugins/config.py:305 -msgid "Hidden IPA CA servers" -msgstr "" - -#: ipaserver/plugins/config.py:306 -msgid "Hidden IPA servers configured as certificate authority" -msgstr "" - -#: ipaserver/plugins/config.py:311 -msgid "IPA CA renewal master" -msgstr "" - -#: ipaserver/plugins/config.py:312 -msgid "Renewal master for IPA certificate authority" -msgstr "" - -#: ipaserver/plugins/config.py:317 ipaserver/plugins/vault.py:978 -msgid "IPA KRA servers" -msgstr "" - -#: ipaserver/plugins/config.py:318 -msgid "IPA servers configured as key recovery agent" -msgstr "" - -#: ipaserver/plugins/config.py:323 -msgid "Hidden IPA KRA servers" -msgstr "" - -#: ipaserver/plugins/config.py:324 -msgid "Hidden IPA servers configured as key recovery agent" -msgstr "" - -#: ipaserver/plugins/config.py:337 -msgid "IPA servers configured as domain name server" -msgstr "" - -#: ipaserver/plugins/config.py:342 -msgid "Hidden IPA DNS servers" -msgstr "" - -#: ipaserver/plugins/config.py:343 -msgid "Hidden IPA servers configured as domain name server" -msgstr "" - -#: ipaserver/plugins/config.py:349 -msgid "DNSec key master" -msgstr "" - -#: ipaserver/plugins/config.py:354 -msgid "Setup SID configuration" -msgstr "" - -#: ipaserver/plugins/config.py:355 -msgid "New users and groups automatically get a SID assigned" -msgstr "" - -#: ipaserver/plugins/config.py:360 -msgid "Add SIDs" -msgstr "" - -#: ipaserver/plugins/config.py:361 -msgid "Add SIDs for existing users and groups" -msgstr "" - -#: ipaserver/plugins/config.py:366 ipaserver/plugins/config.py:367 -msgid "NetBIOS name of the IPA domain" -msgstr "" - -#: ipaserver/plugins/config.py:444 -msgid "Empty domain is not allowed" -msgstr "" - -#: ipaserver/plugins/config.py:452 +#: ipaserver/plugins/trust.py:1663 #, python-format -msgid "Invalid domain name '%(domain)s': %(e)s" +msgid "Removed information about the trusted domain \"%(value)s\"" msgstr "" -#: ipaserver/plugins/config.py:457 -#, python-format -msgid "Server has no information about domain '%(domain)s'" -msgstr "" - -#: ipaserver/plugins/config.py:464 -#, python-format -msgid "Disabled domain '%(domain)s' is not allowed" -msgstr "" - -#: ipaserver/plugins/config.py:514 -msgid "not allowed to enable SID generation" -msgstr "" - -#: ipaserver/plugins/config.py:522 +#: ipaserver/plugins/trust.py:1681 msgid "" -"Up to 15 characters and only uppercase ASCII letters, digits and dashes are " -"allowed. Empty string is not allowed." +"cannot delete root domain of the trust, use trust-del to delete the trust " +"itself" msgstr "" -#: ipaserver/plugins/config.py:550 -msgid "Failed to call DBus" +#: ipaserver/plugins/trust.py:1832 +msgid "" +"List of trust domains successfully refreshed. Use trustdomain-find command " +"to list them." msgstr "" -#: ipaserver/plugins/config.py:560 -msgid "Configuration of SID failed. See details in the error log" +#: ipaserver/plugins/trust.py:1840 +msgid "Configure this server as a trust agent." msgstr "" -#: ipaserver/plugins/config.py:570 -msgid "The group doesn't exist" +#: ipaserver/plugins/trust.py:1856 +msgid "Enable support for trusted domains for old clients" msgstr "" -#: ipaserver/plugins/config.py:588 +#: ipaserver/plugins/trust.py:1872 +msgid "not allowed to remotely add agent" +msgstr "" + +#: ipaserver/plugins/trust.py:1908 #, python-format -msgid "attribute \"%s\" not allowed" +msgid "Enabled trust domain \"%(value)s\"" msgstr "" -#: ipaserver/plugins/config.py:608 -msgid "May not be empty" +#: ipaserver/plugins/trust.py:1917 +msgid "Root domain of the trust is always enabled for the existing trust" msgstr "" -#: ipaserver/plugins/config.py:627 +#: ipaserver/plugins/trust.py:1950 #, python-format -msgid "%(obj)s default attribute %(attr)s would not be allowed!" +msgid "Disabled trust domain \"%(value)s\"" msgstr "" -#: ipaserver/plugins/config.py:659 -msgid "A list of SELinux users delimited by $ expected" +#: ipaserver/plugins/trust.py:1959 +msgid "" +"cannot disable root domain of the trust, use trust-del to delete the trust " +"itself" msgstr "" -#: ipaserver/plugins/config.py:663 -#, python-format -msgid "SELinux user '%(user)s' is not valid: %(error)s" -msgstr "" - -#: ipaserver/plugins/config.py:675 -msgid "SELinux user map default user not in order list" -msgstr "" - -#: ipaserver/plugins/config.py:694 -#, python-format -msgid "You cannot specify %s without the --enable-sid option" -msgstr "" - -#: ipaserver/plugins/vault.py:54 +#: ipaserver/plugins/vault.py:52 msgid "" "\n" "Vaults\n" msgstr "" -#: ipaserver/plugins/vault.py:56 +#: ipaserver/plugins/vault.py:54 msgid "" "\n" "Manage vaults.\n" msgstr "" -#: ipaserver/plugins/vault.py:58 +#: ipaserver/plugins/vault.py:56 msgid "" "\n" "Vault is a secure place to store a secret. One vault can only\n" @@ -26622,7 +26777,7 @@ msgid "" "existing secret (if any) is overwritten.\n" msgstr "" -#: ipaserver/plugins/vault.py:62 +#: ipaserver/plugins/vault.py:60 msgid "" "\n" "Based on the ownership there are three vault categories:\n" @@ -26631,7 +26786,7 @@ msgid "" "* shared vault\n" msgstr "" -#: ipaserver/plugins/vault.py:67 +#: ipaserver/plugins/vault.py:65 msgid "" "\n" "User vaults are vaults owned used by a particular user. Private\n" @@ -26640,7 +26795,7 @@ msgid "" "but they can be used by other users or services.\n" msgstr "" -#: ipaserver/plugins/vault.py:72 +#: ipaserver/plugins/vault.py:70 msgid "" "\n" "Based on the security mechanism there are three types of\n" @@ -26650,7 +26805,7 @@ msgid "" "* asymmetric vault\n" msgstr "" -#: ipaserver/plugins/vault.py:78 +#: ipaserver/plugins/vault.py:76 msgid "" "\n" "Standard vault uses a secure mechanism to transport and\n" @@ -26658,7 +26813,7 @@ msgid "" "that have access to the vault.\n" msgstr "" -#: ipaserver/plugins/vault.py:82 +#: ipaserver/plugins/vault.py:80 msgid "" "\n" "Symmetric vault is similar to the standard vault, but it\n" @@ -26666,7 +26821,7 @@ msgid "" "The secret can only be retrieved using the same password.\n" msgstr "" -#: ipaserver/plugins/vault.py:86 +#: ipaserver/plugins/vault.py:84 msgid "" "\n" "Asymmetric vault is similar to the standard vault, but it\n" @@ -26674,7 +26829,7 @@ msgid "" "The secret can only be retrieved using the private key.\n" msgstr "" -#: ipaserver/plugins/vault.py:92 +#: ipaserver/plugins/vault.py:90 msgid "" "\n" " List vaults:\n" @@ -26682,7 +26837,7 @@ msgid "" " [--user |--service |--shared]\n" msgstr "" -#: ipaserver/plugins/vault.py:96 +#: ipaserver/plugins/vault.py:94 msgid "" "\n" " Add a standard vault:\n" @@ -26691,7 +26846,7 @@ msgid "" " --type standard\n" msgstr "" -#: ipaserver/plugins/vault.py:101 +#: ipaserver/plugins/vault.py:99 msgid "" "\n" " Add a symmetric vault:\n" @@ -26700,7 +26855,7 @@ msgid "" " --type symmetric --password-file password.txt\n" msgstr "" -#: ipaserver/plugins/vault.py:106 +#: ipaserver/plugins/vault.py:104 msgid "" "\n" " Add an asymmetric vault:\n" @@ -26709,7 +26864,7 @@ msgid "" " --type asymmetric --public-key-file public.pem\n" msgstr "" -#: ipaserver/plugins/vault.py:111 +#: ipaserver/plugins/vault.py:109 msgid "" "\n" " Show a vault:\n" @@ -26717,7 +26872,7 @@ msgid "" " [--user |--service |--shared]\n" msgstr "" -#: ipaserver/plugins/vault.py:115 +#: ipaserver/plugins/vault.py:113 msgid "" "\n" " Modify vault description:\n" @@ -26726,7 +26881,7 @@ msgid "" " --desc \n" msgstr "" -#: ipaserver/plugins/vault.py:120 +#: ipaserver/plugins/vault.py:118 msgid "" "\n" " Modify vault type:\n" @@ -26737,7 +26892,7 @@ msgid "" " [new password/public key]\n" msgstr "" -#: ipaserver/plugins/vault.py:127 +#: ipaserver/plugins/vault.py:125 msgid "" "\n" " Modify symmetric vault password:\n" @@ -26754,7 +26909,7 @@ msgid "" " --new-password-file \n" msgstr "" -#: ipaserver/plugins/vault.py:140 +#: ipaserver/plugins/vault.py:138 msgid "" "\n" " Modify asymmetric vault keys:\n" @@ -26764,7 +26919,7 @@ msgid "" " --public-key-file \n" msgstr "" -#: ipaserver/plugins/vault.py:146 +#: ipaserver/plugins/vault.py:144 msgid "" "\n" " Delete a vault:\n" @@ -26772,14 +26927,14 @@ msgid "" " [--user |--service |--shared]\n" msgstr "" -#: ipaserver/plugins/vault.py:150 +#: ipaserver/plugins/vault.py:148 msgid "" "\n" " Display vault configuration:\n" " ipa vaultconfig-show\n" msgstr "" -#: ipaserver/plugins/vault.py:153 +#: ipaserver/plugins/vault.py:151 msgid "" "\n" " Archive data into standard vault:\n" @@ -26788,7 +26943,7 @@ msgid "" " --in \n" msgstr "" -#: ipaserver/plugins/vault.py:158 +#: ipaserver/plugins/vault.py:156 msgid "" "\n" " Archive data into symmetric vault:\n" @@ -26798,7 +26953,7 @@ msgid "" " --password-file password.txt\n" msgstr "" -#: ipaserver/plugins/vault.py:164 +#: ipaserver/plugins/vault.py:162 msgid "" "\n" " Archive data into asymmetric vault:\n" @@ -26807,7 +26962,7 @@ msgid "" " --in \n" msgstr "" -#: ipaserver/plugins/vault.py:169 +#: ipaserver/plugins/vault.py:167 msgid "" "\n" " Retrieve data from standard vault:\n" @@ -26816,7 +26971,7 @@ msgid "" " --out \n" msgstr "" -#: ipaserver/plugins/vault.py:174 +#: ipaserver/plugins/vault.py:172 msgid "" "\n" " Retrieve data from symmetric vault:\n" @@ -26826,7 +26981,7 @@ msgid "" " --password-file password.txt\n" msgstr "" -#: ipaserver/plugins/vault.py:180 +#: ipaserver/plugins/vault.py:178 msgid "" "\n" " Retrieve data from asymmetric vault:\n" @@ -26835,7 +26990,7 @@ msgid "" " --out --private-key-file private.pem\n" msgstr "" -#: ipaserver/plugins/vault.py:185 +#: ipaserver/plugins/vault.py:183 msgid "" "\n" " Add vault owners:\n" @@ -26844,7 +26999,7 @@ msgid "" " [--users ] [--groups ] [--services ]\n" msgstr "" -#: ipaserver/plugins/vault.py:190 +#: ipaserver/plugins/vault.py:188 msgid "" "\n" " Delete vault owners:\n" @@ -26853,7 +27008,7 @@ msgid "" " [--users ] [--groups ] [--services ]\n" msgstr "" -#: ipaserver/plugins/vault.py:195 +#: ipaserver/plugins/vault.py:193 msgid "" "\n" " Add vault members:\n" @@ -26862,7 +27017,7 @@ msgid "" " [--users ] [--groups ] [--services ]\n" msgstr "" -#: ipaserver/plugins/vault.py:200 +#: ipaserver/plugins/vault.py:198 msgid "" "\n" " Delete vault members:\n" @@ -26871,302 +27026,159 @@ msgid "" " [--users ] [--groups ] [--services ]\n" msgstr "" -#: ipaserver/plugins/vault.py:252 +#: ipaserver/plugins/vault.py:250 msgid "" "\n" " Vault Container object.\n" " " msgstr "" -#: ipaserver/plugins/vault.py:258 +#: ipaserver/plugins/vault.py:256 msgid "vaultcontainer" msgstr "" -#: ipaserver/plugins/vault.py:259 +#: ipaserver/plugins/vault.py:257 msgid "vaultcontainers" msgstr "" -#: ipaserver/plugins/vault.py:267 +#: ipaserver/plugins/vault.py:265 msgid "Vault Containers" msgstr "" -#: ipaserver/plugins/vault.py:268 +#: ipaserver/plugins/vault.py:266 msgid "Vault Container" msgstr "" -#: ipaserver/plugins/vault.py:357 +#: ipaserver/plugins/vault.py:355 msgid "Service, shared and user options cannot be specified simultaneously" msgstr "" -#: ipaserver/plugins/vault.py:367 ipaserver/plugins/vault.py:683 +#: ipaserver/plugins/vault.py:365 ipaserver/plugins/vault.py:695 msgid "Host is not supported" msgstr "" -#: ipaserver/plugins/vault.py:409 ipaserver/plugins/vault.py:433 -#: ipaserver/plugins/vault.py:786 ipaserver/plugins/vault.py:824 -#: ipaserver/plugins/vault.py:880 ipaserver/plugins/vault.py:936 -#: ipaserver/plugins/vault.py:958 ipaserver/plugins/vault.py:1000 -#: ipaserver/plugins/vault.py:1044 ipaserver/plugins/vault.py:1113 +#: ipaserver/plugins/vault.py:407 ipaserver/plugins/vault.py:431 +#: ipaserver/plugins/vault.py:798 ipaserver/plugins/vault.py:836 +#: ipaserver/plugins/vault.py:892 ipaserver/plugins/vault.py:948 +#: ipaserver/plugins/vault.py:970 ipaserver/plugins/vault.py:1011 +#: ipaserver/plugins/vault.py:1067 ipaserver/plugins/vault.py:1146 msgid "KRA service is not enabled" msgstr "" -#: ipaserver/plugins/vault.py:424 +#: ipaserver/plugins/vault.py:422 msgid "Deleted vault container" msgstr "" -#: ipaserver/plugins/vault.py:449 ipaserver/plugins/vault.py:474 -#: ipaserver/plugins/vault.py:1164 ipaserver/plugins/vault.py:1189 +#: ipaserver/plugins/vault.py:447 ipaserver/plugins/vault.py:472 +#: ipaserver/plugins/vault.py:1203 ipaserver/plugins/vault.py:1228 #, python-format msgid "owner %s" msgstr "" -#: ipaserver/plugins/vault.py:494 +#: ipaserver/plugins/vault.py:492 msgid "" "\n" " Vault object.\n" " " msgstr "" -#: ipaserver/plugins/vault.py:500 +#: ipaserver/plugins/vault.py:498 msgid "vault" msgstr "" -#: ipaserver/plugins/vault.py:501 +#: ipaserver/plugins/vault.py:499 msgid "vaults" msgstr "" -#: ipaserver/plugins/vault.py:524 +#: ipaserver/plugins/vault.py:522 msgid "Vaults" msgstr "" -#: ipaserver/plugins/vault.py:525 +#: ipaserver/plugins/vault.py:523 msgid "Vault" msgstr "" -#: ipaserver/plugins/vault.py:668 +#: ipaserver/plugins/vault.py:680 msgid "Service, shared, and user options cannot be specified simultaneously" msgstr "" -#: ipaserver/plugins/vault.py:772 +#: ipaserver/plugins/vault.py:784 msgid "Add a vault." msgstr "" -#: ipaserver/plugins/vault.py:778 +#: ipaserver/plugins/vault.py:790 #, python-format msgid "Added vault \"%(value)s\"" msgstr "" -#: ipaserver/plugins/vault.py:817 +#: ipaserver/plugins/vault.py:829 #, python-format msgid "Deleted vault \"%(value)s\"" msgstr "" -#: ipaserver/plugins/vault.py:869 +#: ipaserver/plugins/vault.py:881 #, python-format msgid "%(count)d vault matched" msgid_plural "%(count)d vaults matched" msgstr[0] "" msgstr[1] "" -#: ipaserver/plugins/vault.py:887 +#: ipaserver/plugins/vault.py:899 msgid "" "Service(s), shared, and user(s) options cannot be specified simultaneously" msgstr "" -#: ipaserver/plugins/vault.py:927 +#: ipaserver/plugins/vault.py:939 #, python-format msgid "Modified vault \"%(value)s\"" msgstr "" -#: ipaserver/plugins/vault.py:969 +#: ipaserver/plugins/vault.py:981 msgid "Vault configuration" msgstr "" -#: ipaserver/plugins/vault.py:979 +#: ipaserver/plugins/vault.py:991 msgid "IPA servers configured as key recovery agents" msgstr "" -#: ipaserver/plugins/vault.py:1038 +#: ipaserver/plugins/vault.py:1052 ipaserver/plugins/vault.py:1131 +msgid "Key wrapping algorithm" +msgstr "" + +#: ipaserver/plugins/vault.py:1061 #, python-format msgid "Archived data into vault \"%(value)s\"" msgstr "" -#: ipaserver/plugins/vault.py:1094 +#: ipaserver/plugins/vault.py:1120 msgid "Retrieve data from a vault." msgstr "" -#: ipaserver/plugins/vault.py:1107 +#: ipaserver/plugins/vault.py:1140 #, python-format msgid "Retrieved data from vault \"%(value)s\"" msgstr "" -#: ipaserver/plugins/vault.py:1133 +#: ipaserver/plugins/vault.py:1169 msgid "No archived data." msgstr "" -#: ipaserver/plugins/vault.py:1223 +#: ipaserver/plugins/vault.py:1262 msgid "Checks if any of the servers has the KRA service enabled" msgstr "" -#: ipaserver/plugins/serverrole.py:13 -msgid "" -"\n" -"IPA server roles\n" -msgstr "" - -#: ipaserver/plugins/serverrole.py:15 -msgid "" -"\n" -"Get status of roles (DNS server, CA, etc.) provided by IPA masters.\n" -msgstr "" - -#: ipaserver/plugins/serverrole.py:17 -msgid "" -"\n" -"The status of a role is either enabled, configured, or absent.\n" -msgstr "" - -#: ipaserver/plugins/serverrole.py:21 -msgid "" -"\n" -" Show status of 'DNS server' role on a server:\n" -" ipa server-role-show ipa.example.com \"DNS server\"\n" -msgstr "" - -#: ipaserver/plugins/serverrole.py:24 -msgid "" -"\n" -" Show status of all roles containing 'AD' on a server:\n" -" ipa server-role-find --server ipa.example.com --role=\"AD trust " -"controller\"\n" -msgstr "" - -#: ipaserver/plugins/serverrole.py:27 -msgid "" -"\n" -" Show status of all configured roles on a server:\n" -" ipa server-role-find ipa.example.com\n" -msgstr "" - -#: ipaserver/plugins/serverrole.py:30 -msgid "" -"\n" -" Show implicit IPA master role:\n" -" ipa server-role-find --include-master\n" -msgstr "" - -#: ipaserver/plugins/serverrole.py:46 -msgid "server role" -msgstr "" - -#: ipaserver/plugins/serverrole.py:47 -msgid "server roles" -msgstr "" - -#: ipaserver/plugins/serverrole.py:51 -msgid "IPA Server Roles" -msgstr "" - -#: ipaserver/plugins/serverrole.py:52 -msgid "IPA Server Role" -msgstr "" - -#: ipaserver/plugins/serverrole.py:65 -msgid "IPA server role name" -msgstr "" - -#: ipaserver/plugins/serverrole.py:71 -msgid "Role status" -msgstr "" - -#: ipaserver/plugins/serverrole.py:72 -msgid "Status of the role" -msgstr "" - -#: ipaserver/plugins/serverrole.py:89 -msgid "Show role status on a server" -msgstr "" - -#: ipaserver/plugins/serverrole.py:113 -msgid "Find a server role on a server(s)" -msgstr "" - -#: ipaserver/plugins/serverrole.py:118 +#: ipaserver/servroles.py:296 #, python-format -msgid "%(count)s server role matched" -msgid_plural "%(count)s server roles matched" -msgstr[0] "" -msgstr[1] "" - -#: ipaserver/plugins/serverrole.py:139 -msgid "Include IPA master entries" +msgid "all masters must have %(role)s role enabled" msgstr "" -#: ipaserver/plugins/serverrole.py:192 -msgid "IPA role name" -msgstr "" - -#: ipaserver/plugins/virtual.py:57 -msgid "operation not defined" -msgstr "" - -#: ipaserver/plugins/virtual.py:82 +#: ipaserver/servroles.py:401 #, python-format -msgid "not allowed to perform operation: %s" +msgid "must have %(role)s role enabled" msgstr "" -#: ipaserver/plugins/virtual.py:84 -msgid "No such virtual command" -msgstr "" - -#: ipaserver/topology.py:14 -#, python-format -msgid "" -"\n" -"Replication topology in suffix '%(suffix)s' is disconnected:\n" -"%(errors)s" -msgstr "" - -#: ipaserver/topology.py:18 -#, python-format -msgid "" -"\n" -"Removal of '%(hostname)s' leads to disconnected topology in suffix " -"'%(suffix)s':\n" -"%(errors)s" -msgstr "" - -#: ipaserver/topology.py:121 -#, python-format -msgid "Topology does not allow server %(server)s to replicate with servers:" -msgstr "" - -#: ipaserver/rpcserver.py:556 -msgid "Request must be a dict" -msgstr "" - -#: ipaserver/rpcserver.py:558 -msgid "Request is missing \"method\"" -msgstr "" - -#: ipaserver/rpcserver.py:560 -msgid "Request is missing \"params\"" -msgstr "" - -#: ipaserver/rpcserver.py:565 -msgid "params must be a list" -msgstr "" - -#: ipaserver/rpcserver.py:567 -msgid "params must contain [args, options]" -msgstr "" - -#: ipaserver/rpcserver.py:570 -msgid "params[0] (aka args) must be a list" -msgstr "" - -#: ipaserver/rpcserver.py:573 -msgid "params[1] (aka options) must be a dict" +#: ipaserver/servroles.py:443 +msgid "must be enabled only on a single master" msgstr "" #: ipaserver/dcerpc.py:87 @@ -27349,55 +27361,54 @@ msgid "" "instead" msgstr "" -#: ipaserver/dcerpc_common.py:20 -msgid "Trusting forest" +#: ipaserver/rpcserver.py:556 +msgid "Request must be a dict" msgstr "" -#: ipaserver/dcerpc_common.py:21 -msgid "Trusted forest" +#: ipaserver/rpcserver.py:558 +msgid "Request is missing \"method\"" msgstr "" -#: ipaserver/dcerpc_common.py:26 -msgid "Established and verified" +#: ipaserver/rpcserver.py:560 +msgid "Request is missing \"params\"" msgstr "" -#: ipaserver/dcerpc_common.py:27 -msgid "Waiting for confirmation by remote side" +#: ipaserver/rpcserver.py:565 +msgid "params must be a list" msgstr "" -#: ipaserver/dcerpc_common.py:30 -msgid "Unknown" +#: ipaserver/rpcserver.py:567 +msgid "params must contain [args, options]" msgstr "" -#: ipaserver/dcerpc_common.py:36 -msgid "Non-Active Directory domain" +#: ipaserver/rpcserver.py:570 +msgid "params[0] (aka args) must be a list" msgstr "" -#: ipaserver/dcerpc_common.py:38 -msgid "RFC4120-compliant Kerberos realm" +#: ipaserver/rpcserver.py:573 +msgid "params[1] (aka options) must be a dict" msgstr "" -#: ipaserver/dcerpc_common.py:39 +#: ipaserver/topology.py:14 +#, python-format msgid "" -"Non-transitive external trust to a domain in another Active Directory forest" +"\n" +"Replication topology in suffix '%(suffix)s' is disconnected:\n" +"%(errors)s" msgstr "" -#: ipaserver/dcerpc_common.py:41 -msgid "Non-transitive external trust to an RFC4120-compliant Kerberos realm" -msgstr "" - -#: ipaserver/servroles.py:296 +#: ipaserver/topology.py:18 #, python-format -msgid "all masters must have %(role)s role enabled" +msgid "" +"\n" +"Removal of '%(hostname)s' leads to disconnected topology in suffix " +"'%(suffix)s':\n" +"%(errors)s" msgstr "" -#: ipaserver/servroles.py:401 +#: ipaserver/topology.py:120 #, python-format -msgid "must have %(role)s role enabled" -msgstr "" - -#: ipaserver/servroles.py:443 -msgid "must be enabled only on a single master" +msgid "Topology does not allow server %(server)s to replicate with servers:" msgstr "" #: ipatests/test_ipalib/test_frontend.py:206 @@ -27424,41 +27435,6 @@ msgstr "" msgid "must be at least 1" msgstr "" -#: util/ipa_ldap.c:79 -#, c-format -msgid "Unable to initialize connection to ldap server %1$s: %2$s\n" -msgstr "" - -#: util/ipa_ldap.c:89 -msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" -msgstr "" - -#: util/ipa_ldap.c:97 -msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" -msgstr "" - -#: util/ipa_ldap.c:126 -msgid "Unable to set LDAP_OPT_X_TLS_CACERTFILE\n" -msgstr "" - -#: util/ipa_ldap.c:133 -msgid "Unable to set LDAP_OPT_X_TLS_REQUIRE_CERT\n" -msgstr "" - -#: util/ipa_ldap.c:140 -msgid "Unable to set LDAP_OPT_X_TLS_PROTOCOL_MIN\n" -msgstr "" - -#: util/ipa_ldap.c:147 -msgid "" -"Unable to create new TLS context (OpenSSL failed to initialize or to load " -"certificates)\n" -msgstr "" - -#: util/ipa_ldap.c:156 -msgid "Unable to initialize STARTTLS session\n" -msgstr "" - #: util/ipa_krb5.c:813 util/ipa_krb5.c:828 msgid "Out of memory\n" msgstr "" @@ -27495,3 +27471,38 @@ msgstr "" #: util/ipa_krb5.c:1069 msgid "Bad or unsupported salt type.\n" msgstr "" + +#: util/ipa_ldap.c:79 +#, c-format +msgid "Unable to initialize connection to ldap server %1$s: %2$s\n" +msgstr "" + +#: util/ipa_ldap.c:89 +msgid "Unable to set LDAP_OPT_PROTOCOL_VERSION\n" +msgstr "" + +#: util/ipa_ldap.c:97 +msgid "Unable to set LDAP_OPT_X_SASL_NOCANON\n" +msgstr "" + +#: util/ipa_ldap.c:126 +msgid "Unable to set LDAP_OPT_X_TLS_CACERTFILE\n" +msgstr "" + +#: util/ipa_ldap.c:133 +msgid "Unable to set LDAP_OPT_X_TLS_REQUIRE_CERT\n" +msgstr "" + +#: util/ipa_ldap.c:140 +msgid "Unable to set LDAP_OPT_X_TLS_PROTOCOL_MIN\n" +msgstr "" + +#: util/ipa_ldap.c:147 +msgid "" +"Unable to create new TLS context (OpenSSL failed to initialize or to load " +"certificates)\n" +msgstr "" + +#: util/ipa_ldap.c:156 +msgid "Unable to initialize STARTTLS session\n" +msgstr ""