diff options
author | Petr Viktorin <pviktori@redhat.com> | 2013-04-15 17:01:10 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2013-04-15 18:46:27 +0200 |
commit | ddeb1cea5564093799a6352b2c25bda68d971ce3 (patch) | |
tree | a598186e2a0340e269ab01438eb2e211bb7eb9ec /install/po/ipa.pot | |
parent | 75f080132421d7f3cfe6f82ab0d446f563a5d7bf (diff) | |
download | freeipa-ddeb1cea5564093799a6352b2c25bda68d971ce3.tar.gz freeipa-ddeb1cea5564093799a6352b2c25bda68d971ce3.tar.xz freeipa-ddeb1cea5564093799a6352b2c25bda68d971ce3.zip |
Update translations from Transifex
Diffstat (limited to 'install/po/ipa.pot')
-rw-r--r-- | install/po/ipa.pot | 3963 |
1 files changed, 2308 insertions, 1655 deletions
diff --git a/install/po/ipa.pot b/install/po/ipa.pot index dea6202cd..985d5f21f 100644 --- a/install/po/ipa.pot +++ b/install/po/ipa.pot @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: ipa\n" "Report-Msgid-Bugs-To: https://hosted.fedoraproject.org/projects/freeipa/" "newticket\n" -"POT-Creation-Date: 2012-10-12 04:08-0400\n" +"POT-Creation-Date: 2013-04-15 16:42+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -33,407 +33,412 @@ msgstr "" msgid "No matching entries found" msgstr "" -#: ipalib/cli.py:764 -#, python-format -msgid "Purpose: %s" -msgstr "" - -#: ipalib/cli.py:781 -msgid "Usage: ipa [global-options] COMMAND ..." -msgstr "" - -#: ipalib/cli.py:783 -msgid "Built-in commands:" +#: ipalib/cli.py:668 +msgid "Topic or Command" msgstr "" -#: ipalib/cli.py:785 -msgid "Help subtopics:" +#: ipalib/cli.py:669 +msgid "The topic or command name." msgstr "" -#: ipalib/cli.py:788 -msgid "Help topics:" +#: ipalib/cli.py:833 +msgid "Topic commands:" msgstr "" -#: ipalib/cli.py:793 -msgid "Try `ipa --help` for a list of global options." +#: ipalib/cli.py:838 +msgid "To get command help, use:" msgstr "" -#: ipalib/cli.py:827 -msgid "Topic commands:" +#: ipalib/cli.py:839 +msgid " ipa <command> --help" msgstr "" -#: ipalib/cli.py:838 +#: ipalib/cli.py:848 msgid "Command name" msgstr "" -#: ipalib/cli.py:988 +#: ipalib/cli.py:998 msgid "Positional arguments" msgstr "" -#: ipalib/cli.py:1244 +#: ipalib/cli.py:1256 msgid "No file to read" msgstr "" -#: ipalib/errors.py:311 +#: ipalib/errors.py:269 #, python-format -msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" +msgid "%(cver)s client incompatible with %(sver)s server at '%(server)s'" msgstr "" -#: ipalib/errors.py:329 +#: ipalib/errors.py:287 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/errors.py:345 +#: ipalib/errors.py:303 msgid "an internal error has occurred" msgstr "" -#: ipalib/errors.py:367 +#: ipalib/errors.py:325 #, python-format -msgid "an internal error has occurred on server at %(server)r" +msgid "an internal error has occurred on server at '%(server)s'" msgstr "" -#: ipalib/errors.py:383 +#: ipalib/errors.py:341 #, python-format -msgid "unknown command %(name)r" +msgid "unknown command '%(name)s'" msgstr "" -#: ipalib/errors.py:400 ipalib/errors.py:425 +#: ipalib/errors.py:358 ipalib/errors.py:383 #, python-format -msgid "error on server %(server)r: %(error)s" +msgid "error on server '%(server)s': %(error)s" msgstr "" -#: ipalib/errors.py:416 +#: ipalib/errors.py:374 #, python-format -msgid "cannot connect to %(uri)r: %(error)s" +msgid "cannot connect to '%(uri)s': %(error)s" msgstr "" -#: ipalib/errors.py:434 +#: ipalib/errors.py:392 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/errors.py:450 +#: ipalib/errors.py:408 #, python-format msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/errors.py:466 +#: ipalib/errors.py:424 #, python-format msgid "Missing or invalid HTTP Referer, %(referer)s" msgstr "" -#: ipalib/errors.py:493 +#: ipalib/errors.py:451 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/errors.py:510 +#: ipalib/errors.py:468 msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/errors.py:526 +#: ipalib/errors.py:484 #, python-format -msgid "Service %(service)r not found in Kerberos database" +msgid "Service '%(service)s' not found in Kerberos database" msgstr "" -#: ipalib/errors.py:542 +#: ipalib/errors.py:500 msgid "No credentials cache found" msgstr "" -#: ipalib/errors.py:558 +#: ipalib/errors.py:516 msgid "Ticket expired" msgstr "" -#: ipalib/errors.py:574 +#: ipalib/errors.py:532 msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/errors.py:590 +#: ipalib/errors.py:548 msgid "Bad format in credentials cache" msgstr "" -#: ipalib/errors.py:606 +#: ipalib/errors.py:564 msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/errors.py:618 +#: ipalib/errors.py:576 msgid "Session error" msgstr "" -#: ipalib/errors.py:626 +#: ipalib/errors.py:584 #, python-format msgid "Principal %(principal)s cannot be authenticated: %(message)s" msgstr "" -#: ipalib/errors.py:644 +#: ipalib/errors.py:602 #, python-format msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/errors.py:688 +#: ipalib/errors.py:646 #, python-format -msgid "command %(name)r takes no arguments" +msgid "command '%(name)s' takes no arguments" msgstr "" -#: ipalib/errors.py:708 +#: ipalib/errors.py:666 #, python-format -msgid "command %(name)r takes at most %(count)d argument" -msgid_plural "command %(name)r takes at most %(count)d arguments" +msgid "command '%(name)s' takes at most %(count)d argument" +msgid_plural "command '%(name)s' takes at most %(count)d arguments" msgstr[0] "" msgstr[1] "" -#: ipalib/errors.py:738 +#: ipalib/errors.py:696 #, python-format -msgid "overlapping arguments and options: %(names)r" +msgid "overlapping arguments and options: %(names)s" msgstr "" -#: ipalib/errors.py:754 +#: ipalib/errors.py:712 #, python-format -msgid "%(name)r is required" +msgid "'%(name)s' is required" msgstr "" -#: ipalib/errors.py:770 ipalib/errors.py:786 +#: ipalib/errors.py:728 ipalib/errors.py:744 #, python-format -msgid "invalid %(name)r: %(error)s" +msgid "invalid '%(name)s': %(error)s" msgstr "" -#: ipalib/errors.py:802 +#: ipalib/errors.py:760 #, python-format -msgid "api has no such namespace: %(name)r" +msgid "api has no such namespace: '%(name)s'" msgstr "" -#: ipalib/errors.py:811 +#: ipalib/errors.py:769 msgid "Passwords do not match" msgstr "" -#: ipalib/errors.py:820 +#: ipalib/errors.py:778 msgid "Command not implemented" msgstr "" -#: ipalib/errors.py:829 +#: ipalib/errors.py:787 msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/errors.py:838 +#: ipalib/errors.py:796 #, python-format msgid "Could not get %(name)s interactively" msgstr "" -#: ipalib/errors.py:866 ipalib/errors.py:1106 ipalib/errors.py:1200 -#: ipalib/errors.py:1581 ipalib/errors.py:1598 +#: ipalib/errors.py:811 +#, python-format +msgid "Command '%(name)s' has been deprecated" +msgstr "" + +#: ipalib/errors.py:839 ipalib/errors.py:1079 ipalib/errors.py:1173 +#: ipalib/errors.py:1570 ipalib/errors.py:1587 #, python-format msgid "%(reason)s" msgstr "" -#: ipalib/errors.py:882 +#: ipalib/errors.py:855 msgid "This entry already exists" msgstr "" -#: ipalib/errors.py:898 +#: ipalib/errors.py:871 msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/errors.py:914 +#: ipalib/errors.py:887 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: " "%(reason)s" msgstr "" -#: ipalib/errors.py:930 +#: ipalib/errors.py:903 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/errors.py:946 +#: ipalib/errors.py:919 msgid "This command requires root access" msgstr "" -#: ipalib/errors.py:962 +#: ipalib/errors.py:935 msgid "This is already a posix group" msgstr "" -#: ipalib/errors.py:978 +#: ipalib/errors.py:951 #, python-format -msgid "Principal is not of the form user@REALM: %(principal)r" +msgid "Principal is not of the form user@REALM: '%(principal)s'" msgstr "" -#: ipalib/errors.py:994 +#: ipalib/errors.py:967 msgid "This entry is already enabled" msgstr "" -#: ipalib/errors.py:1010 +#: ipalib/errors.py:983 msgid "This entry is already disabled" msgstr "" -#: ipalib/errors.py:1026 +#: ipalib/errors.py:999 msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/errors.py:1042 +#: ipalib/errors.py:1015 msgid "This entry is not a member" msgstr "" -#: ipalib/errors.py:1058 +#: ipalib/errors.py:1031 msgid "A group may not be a member of itself" msgstr "" -#: ipalib/errors.py:1074 +#: ipalib/errors.py:1047 msgid "This entry is already a member" msgstr "" -#: ipalib/errors.py:1090 +#: ipalib/errors.py:1063 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/errors.py:1122 +#: ipalib/errors.py:1095 msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/errors.py:1138 +#: ipalib/errors.py:1111 msgid "The default users group cannot be removed" msgstr "" -#: ipalib/errors.py:1154 +#: ipalib/errors.py:1127 msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/errors.py:1169 +#: ipalib/errors.py:1142 msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/errors.py:1184 +#: ipalib/errors.py:1157 msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/errors.py:1216 +#: ipalib/errors.py:1189 #, python-format msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/errors.py:1232 +#: ipalib/errors.py:1205 #, python-format msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/errors.py:1248 +#: ipalib/errors.py:1221 #, python-format msgid "" "A problem was encountered when verifying that all members were %(verb)s: " "%(exc)s" msgstr "" -#: ipalib/errors.py:1266 +#: ipalib/errors.py:1239 #, python-format msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/errors.py:1283 +#: ipalib/errors.py:1256 #, python-format msgid "" "The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/errors.py:1300 +#: ipalib/errors.py:1273 msgid "This group already allows external members" msgstr "" -#: ipalib/errors.py:1317 +#: ipalib/errors.py:1290 msgid "This group cannot be posix because it is external" msgstr "" -#: ipalib/errors.py:1334 +#: ipalib/errors.py:1307 msgid "This is already a posix group and cannot be converted to external one" msgstr "" -#: ipalib/errors.py:1357 +#: ipalib/errors.py:1330 #, python-format -msgid "no command nor help topic %(topic)r" +msgid "no command nor help topic '%(topic)s'" msgstr "" -#: ipalib/errors.py:1381 +#: ipalib/errors.py:1354 msgid "change collided with another change" msgstr "" -#: ipalib/errors.py:1397 +#: ipalib/errors.py:1370 msgid "no modifications to be performed" msgstr "" -#: ipalib/errors.py:1413 +#: ipalib/errors.py:1386 #, python-format msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/errors.py:1429 +#: ipalib/errors.py:1402 msgid "limits exceeded for this query" msgstr "" -#: ipalib/errors.py:1444 +#: ipalib/errors.py:1417 #, python-format msgid "%(info)s" msgstr "" -#: ipalib/errors.py:1459 +#: ipalib/errors.py:1432 msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/errors.py:1475 +#: ipalib/errors.py:1448 #, python-format msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/errors.py:1491 +#: ipalib/errors.py:1464 #, python-format msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/errors.py:1507 +#: ipalib/errors.py:1480 #, python-format msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/errors.py:1523 +#: ipalib/errors.py:1496 msgid "Not allowed on non-leaf entry" msgstr "" -#: ipalib/errors.py:1548 +#: ipalib/errors.py:1512 +msgid "LDAP timeout" +msgstr "" + +#: ipalib/errors.py:1537 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/errors.py:1564 +#: ipalib/errors.py:1553 #, python-format msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/errors.py:1615 +#: ipalib/errors.py:1604 msgid "Already registered" msgstr "" -#: ipalib/errors.py:1631 +#: ipalib/errors.py:1620 msgid "Not registered yet" msgstr "" -#: ipalib/errors.py:1647 +#: ipalib/errors.py:1636 #, python-format msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" msgstr "" -#: ipalib/errors.py:1663 +#: ipalib/errors.py:1652 #, python-format msgid "" "%(key)s cannot be deleted or disabled because it is the last member of " "%(label)s %(container)s" msgstr "" -#: ipalib/errors.py:1679 +#: ipalib/errors.py:1668 #, python-format msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" msgstr "" -#: ipalib/frontend.py:411 +#: ipalib/errors.py:1685 +#, python-format +msgid "%(name)s certificate is not valid" +msgstr "" + +#: ipalib/frontend.py:412 msgid "Results are truncated, try a more specific search" msgstr "" @@ -442,23 +447,34 @@ msgstr "" msgid "Unknown option: %(option)s" msgstr "" -#: ipalib/frontend.py:890 +#: ipalib/frontend.py:877 msgid "" "Retrieve and print all attributes from the server. Affects command output." msgstr "" -#: ipalib/frontend.py:896 +#: ipalib/frontend.py:883 msgid "Print entries as stored on the server. Only affects output format." msgstr "" -#: ipalib/frontend.py:901 ipalib/plugins/batch.py:69 +#: ipalib/frontend.py:889 ipalib/plugins/batch.py:69 msgid "Client version. Used to determine if server will accept request." msgstr "" -#: ipalib/frontend.py:1058 +#: ipalib/frontend.py:1062 msgid "Forward to server instead of running locally" msgstr "" +#: ipalib/messages.py:73 +msgid "Additional instructions:" +msgstr "" + +#: ipalib/messages.py:134 +#, python-format +msgid "" +"API Version number was not sent, forward compatibility not guaranteed. " +"Assuming server's API version, %(server_version)s" +msgstr "" + #: ipalib/output.py:92 msgid "A dictionary representing an LDAP entry" msgstr "" @@ -495,119 +511,123 @@ msgstr "" msgid "True means the operation was successful" msgstr "" -#: ipalib/parameters.py:371 +#: ipalib/parameters.py:366 msgid "incorrect type" msgstr "" -#: ipalib/parameters.py:374 +#: ipalib/parameters.py:369 msgid "Only one value is allowed" msgstr "" -#: ipalib/parameters.py:997 +#: ipalib/parameters.py:935 msgid "must be True or False" msgstr "" -#: ipalib/parameters.py:1098 +#: ipalib/parameters.py:1036 msgid "must be an integer" msgstr "" -#: ipalib/parameters.py:1150 +#: ipalib/parameters.py:1087 #, python-format msgid "must be at least %(minvalue)d" msgstr "" -#: ipalib/parameters.py:1160 +#: ipalib/parameters.py:1097 #, python-format msgid "can be at most %(maxvalue)d" msgstr "" -#: ipalib/parameters.py:1203 +#: ipalib/parameters.py:1138 msgid "must be a decimal number" msgstr "" -#: ipalib/parameters.py:1249 +#: ipalib/parameters.py:1184 #, python-format msgid "must be at least %(minvalue)s" msgstr "" -#: ipalib/parameters.py:1259 +#: ipalib/parameters.py:1194 #, python-format msgid "can be at most %(maxvalue)s" msgstr "" -#: ipalib/parameters.py:1268 +#: ipalib/parameters.py:1202 #, python-format msgid "" "number class '%(cls)s' is not included in a list of allowed number classes: " "%(allowed)s" msgstr "" -#: ipalib/parameters.py:1392 +#: ipalib/parameters.py:1326 #, python-format msgid "must match pattern \"%(pattern)s\"" msgstr "" -#: ipalib/parameters.py:1410 +#: ipalib/parameters.py:1344 msgid "must be binary data" msgstr "" -#: ipalib/parameters.py:1426 +#: ipalib/parameters.py:1360 #, python-format msgid "must be at least %(minlength)d bytes" msgstr "" -#: ipalib/parameters.py:1436 +#: ipalib/parameters.py:1370 #, python-format msgid "can be at most %(maxlength)d bytes" msgstr "" -#: ipalib/parameters.py:1446 +#: ipalib/parameters.py:1380 #, python-format msgid "must be exactly %(length)d bytes" msgstr "" -#: ipalib/parameters.py:1476 +#: ipalib/parameters.py:1410 msgid "must be Unicode text" msgstr "" -#: ipalib/parameters.py:1509 +#: ipalib/parameters.py:1443 msgid "Leading and trailing spaces are not allowed" msgstr "" -#: ipalib/parameters.py:1517 +#: ipalib/parameters.py:1451 #, python-format msgid "must be at least %(minlength)d characters" msgstr "" -#: ipalib/parameters.py:1527 +#: ipalib/parameters.py:1461 #, python-format msgid "can be at most %(maxlength)d characters" msgstr "" -#: ipalib/parameters.py:1537 +#: ipalib/parameters.py:1471 #, python-format msgid "must be exactly %(length)d characters" msgstr "" -#: ipalib/parameters.py:1556 +#: ipalib/parameters.py:1490 #, python-format -msgid "The character '%(char)r' is not allowed." +msgid "The character %(char)r is not allowed." msgstr "" -#: ipalib/parameters.py:1605 +#: ipalib/parameters.py:1539 #, python-format msgid "must be '%(value)s'" msgstr "" -#: ipalib/parameters.py:1608 +#: ipalib/parameters.py:1542 #, python-format msgid "must be one of %(values)s" msgstr "" -#: ipalib/parameters.py:1847 +#: ipalib/parameters.py:1781 msgid "incomplete time value" msgstr "" +#: ipalib/parameters.py:1818 +msgid "this option is deprecated" +msgstr "" + #: ipalib/plugins/aci.py:154 msgid "A list of ACI values" msgstr "" @@ -638,165 +658,168 @@ msgstr "" msgid "One of group, permission or self is required" msgstr "" -#: ipalib/plugins/aci.py:254 +#: ipalib/plugins/aci.py:257 #, python-format msgid "Group '%s' does not exist" msgstr "" -#: ipalib/plugins/aci.py:280 +#: ipalib/plugins/aci.py:283 msgid "empty filter" msgstr "" -#: ipalib/plugins/aci.py:301 +#: ipalib/plugins/aci.py:304 #, python-format msgid "Syntax Error: %(error)s" msgstr "" -#: ipalib/plugins/aci.py:390 +#: ipalib/plugins/aci.py:350 +#, python-format +msgid "invalid DN (%s)" +msgstr "" + +#: ipalib/plugins/aci.py:397 #, python-format msgid "ACI with name \"%s\" not found" msgstr "" -#: ipalib/plugins/aci.py:411 +#: ipalib/plugins/aci.py:415 msgid "ACI prefix" msgstr "" -#: ipalib/plugins/aci.py:412 +#: ipalib/plugins/aci.py:416 msgid "" "Prefix used to distinguish ACI types (permission, delegation, selfservice, " "none)" msgstr "" -#: ipalib/plugins/aci.py:423 +#: ipalib/plugins/aci.py:427 msgid "ACIs" msgstr "" -#: ipalib/plugins/aci.py:428 +#: ipalib/plugins/aci.py:432 msgid "ACI name" msgstr "" -#: ipalib/plugins/aci.py:434 ipalib/plugins/permission.py:122 +#: ipalib/plugins/aci.py:438 ipalib/plugins/permission.py:123 msgid "Permission" msgstr "" -#: ipalib/plugins/aci.py:435 +#: ipalib/plugins/aci.py:439 msgid "Permission ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:440 ipalib/plugins/delegation.py:102 +#: ipalib/plugins/aci.py:444 ipalib/plugins/delegation.py:101 msgid "User group" msgstr "" -#: ipalib/plugins/aci.py:441 ipalib/plugins/delegation.py:103 +#: ipalib/plugins/aci.py:445 ipalib/plugins/delegation.py:102 msgid "User group ACI grants access to" msgstr "" -#: ipalib/plugins/aci.py:446 ipalib/plugins/baseldap.py:65 -#: ipalib/plugins/delegation.py:83 ipalib/plugins/permission.py:121 -#: ipalib/plugins/permission.py:134 ipalib/plugins/selfservice.py:85 +#: ipalib/plugins/aci.py:450 ipalib/plugins/baseldap.py:65 +#: ipalib/plugins/delegation.py:83 ipalib/plugins/permission.py:122 +#: ipalib/plugins/permission.py:135 ipalib/plugins/selfservice.py:87 msgid "Permissions" msgstr "" -#: ipalib/plugins/aci.py:447 -msgid "" -"comma-separated list of permissions to grant(read, write, add, delete, all)" +#: ipalib/plugins/aci.py:451 +msgid "Permissions to grant(read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/aci.py:455 ipalib/plugins/delegation.py:90 -#: ipalib/plugins/permission.py:141 ipalib/plugins/selfservice.py:92 -msgid "Attributes" +#: ipalib/plugins/aci.py:459 ipalib/plugins/permission.py:143 +msgid "Attributes to which the permission applies" msgstr "" -#: ipalib/plugins/aci.py:456 ipalib/plugins/delegation.py:91 +#: ipalib/plugins/aci.py:460 ipalib/plugins/delegation.py:89 #: ipalib/plugins/permission.py:142 ipalib/plugins/selfservice.py:93 -msgid "Comma-separated list of attributes" +msgid "Attributes" msgstr "" -#: ipalib/plugins/aci.py:462 ipalib/plugins/permission.py:149 +#: ipalib/plugins/aci.py:466 ipalib/plugins/permission.py:150 msgid "Type" msgstr "" -#: ipalib/plugins/aci.py:463 +#: ipalib/plugins/aci.py:467 msgid "type of IPA object (user, group, host, hostgroup, service, netgroup)" msgstr "" -#: ipalib/plugins/aci.py:469 +#: ipalib/plugins/aci.py:473 msgid "Member of" msgstr "" -#: ipalib/plugins/aci.py:470 +#: ipalib/plugins/aci.py:474 msgid "Member of a group" msgstr "" -#: ipalib/plugins/aci.py:475 ipalib/plugins/permission.py:162 +#: ipalib/plugins/aci.py:479 ipalib/plugins/permission.py:163 msgid "Filter" msgstr "" -#: ipalib/plugins/aci.py:476 ipalib/plugins/permission.py:163 +#: ipalib/plugins/aci.py:480 ipalib/plugins/permission.py:164 msgid "Legal LDAP filter (e.g. ou=Engineering)" msgstr "" -#: ipalib/plugins/aci.py:481 ipalib/plugins/permission.py:168 +#: ipalib/plugins/aci.py:485 ipalib/plugins/permission.py:169 msgid "Subtree" msgstr "" -#: ipalib/plugins/aci.py:482 +#: ipalib/plugins/aci.py:486 msgid "Subtree to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:487 ipalib/plugins/permission.py:174 +#: ipalib/plugins/aci.py:491 ipalib/plugins/permission.py:175 msgid "Target group" msgstr "" -#: ipalib/plugins/aci.py:488 +#: ipalib/plugins/aci.py:492 msgid "Group to apply ACI to" msgstr "" -#: ipalib/plugins/aci.py:493 +#: ipalib/plugins/aci.py:497 msgid "Target your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:494 +#: ipalib/plugins/aci.py:498 msgid "Apply ACI to your own entry (self)" msgstr "" -#: ipalib/plugins/aci.py:506 +#: ipalib/plugins/aci.py:510 #, python-format msgid "Created ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:511 +#: ipalib/plugins/aci.py:515 msgid "Test the ACI syntax but don't write anything" msgstr "" -#: ipalib/plugins/aci.py:562 +#: ipalib/plugins/aci.py:566 #, python-format msgid "Deleted ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:605 ipalib/plugins/aci.py:880 -#: ipalib/plugins/aci.py:921 ipalib/plugins/delegation.py:59 -#: ipalib/plugins/permission.py:88 ipalib/plugins/selfservice.py:58 +#: ipalib/plugins/aci.py:609 ipalib/plugins/aci.py:885 +#: ipalib/plugins/aci.py:926 ipalib/plugins/delegation.py:59 +#: ipalib/plugins/permission.py:88 ipalib/plugins/selfservice.py:60 msgid "ACI" msgstr "" -#: ipalib/plugins/aci.py:613 +#: ipalib/plugins/aci.py:617 #, python-format msgid "Modified ACI \"%(value)s\"" msgstr "" -#: ipalib/plugins/aci.py:688 +#: ipalib/plugins/aci.py:692 #, python-format msgid "%(count)d ACI matched" msgid_plural "%(count)d ACIs matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/aci.py:928 +#: ipalib/plugins/aci.py:933 msgid "New ACI name" msgstr "" -#: ipalib/plugins/aci.py:932 +#: ipalib/plugins/aci.py:937 #, python-format msgid "Renamed ACI to \"%(value)s\"" msgstr "" @@ -928,12 +951,12 @@ msgid "Auto Membership Rule" msgstr "" #: ipalib/plugins/automember.py:176 ipalib/plugins/automount.py:579 -#: ipalib/plugins/group.py:152 ipalib/plugins/hbacrule.py:184 +#: ipalib/plugins/group.py:155 ipalib/plugins/hbacrule.py:179 #: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 -#: ipalib/plugins/host.py:259 ipalib/plugins/hostgroup.py:90 +#: ipalib/plugins/host.py:265 ipalib/plugins/hostgroup.py:90 #: ipalib/plugins/netgroup.py:122 ipalib/plugins/privilege.py:73 #: ipalib/plugins/role.py:92 ipalib/plugins/selinuxusermap.py:184 -#: ipalib/plugins/sudocmd.py:76 ipalib/plugins/sudocmdgroup.py:78 +#: ipalib/plugins/sudocmd.py:77 ipalib/plugins/sudocmdgroup.py:78 #: ipalib/plugins/sudorule.py:111 msgid "Description" msgstr "" @@ -942,7 +965,7 @@ msgstr "" msgid "A description of this auto member rule" msgstr "" -#: ipalib/plugins/automember.py:181 ipalib/plugins/automember.py:514 +#: ipalib/plugins/automember.py:181 ipalib/plugins/automember.py:511 msgid "Default (fallback) Group" msgstr "" @@ -1000,12 +1023,12 @@ msgstr "" msgid "Number of conditions added" msgstr "" -#: ipalib/plugins/automember.py:290 ipalib/plugins/automember.py:377 +#: ipalib/plugins/automember.py:290 ipalib/plugins/automember.py:376 #, python-format msgid "Auto member rule: %s not found!" msgstr "" -#: ipalib/plugins/automember.py:333 +#: ipalib/plugins/automember.py:332 msgid "" "\n" " Override this so we can add completed and failed to the return " @@ -1013,112 +1036,112 @@ msgid "" " " msgstr "" -#: ipalib/plugins/automember.py:349 +#: ipalib/plugins/automember.py:348 msgid "" "\n" " Remove conditions from an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:354 +#: ipalib/plugins/automember.py:353 #, python-format msgid "Removed condition(s) from \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:363 +#: ipalib/plugins/automember.py:362 msgid "Conditions that could not be removed" msgstr "" -#: ipalib/plugins/automember.py:367 +#: ipalib/plugins/automember.py:366 msgid "Number of conditions removed" msgstr "" -#: ipalib/plugins/automember.py:423 +#: ipalib/plugins/automember.py:420 msgid "" "\n" " Override this so we can set completed and failed.\n" " " msgstr "" -#: ipalib/plugins/automember.py:439 +#: ipalib/plugins/automember.py:436 msgid "" "\n" " Modify an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:444 +#: ipalib/plugins/automember.py:441 #, python-format msgid "Modified automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:455 +#: ipalib/plugins/automember.py:452 msgid "" "\n" " Delete an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:460 +#: ipalib/plugins/automember.py:457 #, python-format msgid "Deleted automember rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:471 +#: ipalib/plugins/automember.py:468 msgid "" "\n" " Search for automember rules.\n" " " msgstr "" -#: ipalib/plugins/automember.py:478 +#: ipalib/plugins/automember.py:475 #, python-format msgid "%(count)d rules matched" msgid_plural "%(count)d rules matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/automember.py:491 +#: ipalib/plugins/automember.py:488 msgid "" "\n" " Display information about an automember rule.\n" " " msgstr "" -#: ipalib/plugins/automember.py:507 +#: ipalib/plugins/automember.py:504 msgid "" "\n" " Set default (fallback) group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/automember.py:515 +#: ipalib/plugins/automember.py:512 msgid "Default (fallback) group for entries to land" msgstr "" -#: ipalib/plugins/automember.py:519 +#: ipalib/plugins/automember.py:516 #, python-format msgid "Set default (fallback) group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:535 +#: ipalib/plugins/automember.py:533 msgid "" "\n" " Remove default (fallback) group for all unmatched entries.\n" " " msgstr "" -#: ipalib/plugins/automember.py:540 +#: ipalib/plugins/automember.py:538 #, python-format msgid "Removed default (fallback) group for automember \"%(value)s\"" msgstr "" -#: ipalib/plugins/automember.py:551 ipalib/plugins/automember.py:559 -#: ipalib/plugins/automember.py:583 +#: ipalib/plugins/automember.py:548 ipalib/plugins/automember.py:556 +#: ipalib/plugins/automember.py:581 msgid "No default (fallback) group set" msgstr "" -#: ipalib/plugins/automember.py:571 +#: ipalib/plugins/automember.py:568 msgid "" "\n" " Display information about the default (fallback) automember groups.\n" @@ -1249,7 +1272,7 @@ msgstr "" msgid "Automount Location" msgstr "" -#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:269 +#: ipalib/plugins/automount.py:215 ipalib/plugins/host.py:275 msgid "Location" msgstr "" @@ -1530,9 +1553,9 @@ msgstr[1] "" msgid "Display an automount key." msgstr "" -#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:493 -#: ipalib/plugins/internal.py:276 ipalib/plugins/internal.py:618 -#: ipalib/plugins/migration.py:406 ipalib/plugins/user.py:288 +#: ipalib/plugins/baseldap.py:41 ipalib/plugins/entitle.py:495 +#: ipalib/plugins/internal.py:280 ipalib/plugins/internal.py:650 +#: ipalib/plugins/migration.py:490 ipalib/plugins/user.py:289 msgid "Password" msgstr "" @@ -1669,199 +1692,192 @@ msgstr "" msgid "Invalid format. Should be name=value" msgstr "" -#: ipalib/plugins/baseldap.py:321 +#: ipalib/plugins/baseldap.py:286 msgid "External host" msgstr "" -#: ipalib/plugins/baseldap.py:450 +#: ipalib/plugins/baseldap.py:419 msgid "An IPA master host cannot be deleted or disabled" msgstr "" -#: ipalib/plugins/baseldap.py:465 +#: ipalib/plugins/baseldap.py:433 msgid "entry" msgstr "" -#: ipalib/plugins/baseldap.py:466 +#: ipalib/plugins/baseldap.py:434 msgid "entries" msgstr "" -#: ipalib/plugins/baseldap.py:498 ipalib/plugins/baseldap.py:499 +#: ipalib/plugins/baseldap.py:466 ipalib/plugins/baseldap.py:467 msgid "Entry" msgstr "" -#: ipalib/plugins/baseldap.py:501 +#: ipalib/plugins/baseldap.py:469 #, python-format msgid "container entry (%(container)s) not found" msgstr "" -#: ipalib/plugins/baseldap.py:502 +#: ipalib/plugins/baseldap.py:470 #, python-format msgid "%(parent)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:503 +#: ipalib/plugins/baseldap.py:471 #, python-format msgid "%(pkey)s: %(oname)s not found" msgstr "" -#: ipalib/plugins/baseldap.py:504 +#: ipalib/plugins/baseldap.py:472 #, python-format msgid "%(oname)s with name \"%(pkey)s\" already exists" msgstr "" -#: ipalib/plugins/baseldap.py:695 ipalib/plugins/baseldap.py:703 -#: ipalib/plugins/baseldap.py:708 +#: ipalib/plugins/baseldap.py:664 ipalib/plugins/baseldap.py:672 +#: ipalib/plugins/baseldap.py:677 #, python-format msgid "attribute \"%(attribute)s\" not allowed" msgstr "" -#: ipalib/plugins/baseldap.py:770 +#: ipalib/plugins/baseldap.py:739 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 "" -#: ipalib/plugins/baseldap.py:776 +#: ipalib/plugins/baseldap.py:745 msgid "" "Add an attribute/value pair. Format is attr=value. The attribute\n" "must be part of the schema." msgstr "" -#: ipalib/plugins/baseldap.py:782 +#: ipalib/plugins/baseldap.py:751 msgid "" "Delete an attribute/value pair. The option will be evaluated\n" "last, after all sets and adds." msgstr "" -#: ipalib/plugins/baseldap.py:810 +#: ipalib/plugins/baseldap.py:779 msgid "attribute is not configurable" msgstr "" -#: ipalib/plugins/baseldap.py:919 +#: ipalib/plugins/baseldap.py:882 msgid "No such attribute on this entry" msgstr "" -#: ipalib/plugins/baseldap.py:1178 +#: ipalib/plugins/baseldap.py:1145 msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/baseldap.py:1203 ipalib/plugins/baseldap.py:1270 -#: ipalib/plugins/internal.py:500 +#: ipalib/plugins/baseldap.py:1170 ipalib/plugins/baseldap.py:1240 +#: ipalib/plugins/internal.py:522 msgid "Rights" msgstr "" -#: ipalib/plugins/baseldap.py:1204 ipalib/plugins/baseldap.py:1271 +#: ipalib/plugins/baseldap.py:1171 ipalib/plugins/baseldap.py:1241 msgid "" "Display the access rights of this entry (requires --all). See ipa man page " "for details." msgstr "" -#: ipalib/plugins/baseldap.py:1280 +#: ipalib/plugins/baseldap.py:1250 msgid "Rename" msgstr "" -#: ipalib/plugins/baseldap.py:1281 +#: ipalib/plugins/baseldap.py:1251 #, python-format msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/baseldap.py:1359 +#: ipalib/plugins/baseldap.py:1330 msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/baseldap.py:1483 ipalib/plugins/baseldap.py:1946 +#: ipalib/plugins/baseldap.py:1457 ipalib/plugins/baseldap.py:1924 #, python-format -msgid "comma-separated list of %s" +msgid "%s" msgstr "" -#: ipalib/plugins/baseldap.py:1495 +#: ipalib/plugins/baseldap.py:1469 #, python-format msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:1525 ipalib/plugins/baseldap.py:1971 +#: ipalib/plugins/baseldap.py:1499 ipalib/plugins/baseldap.py:1949 #, python-format -msgid "comma-separated list of %s to add" +msgid "%s to add" msgstr "" -#: ipalib/plugins/baseldap.py:1533 ipalib/plugins/baseldap.py:1983 +#: ipalib/plugins/baseldap.py:1507 ipalib/plugins/baseldap.py:1961 #: ipalib/plugins/privilege.py:150 ipalib/plugins/privilege.py:175 #: ipalib/plugins/role.py:164 ipalib/plugins/role.py:187 msgid "Members that could not be added" msgstr "" -#: ipalib/plugins/baseldap.py:1537 ipalib/plugins/baseldap.py:1987 +#: ipalib/plugins/baseldap.py:1511 ipalib/plugins/baseldap.py:1965 msgid "Number of members added" msgstr "" -#: ipalib/plugins/baseldap.py:1621 ipalib/plugins/baseldap.py:2073 +#: ipalib/plugins/baseldap.py:1598 ipalib/plugins/baseldap.py:2051 #, python-format -msgid "comma-separated list of %s to remove" +msgid "%s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:1628 ipalib/plugins/baseldap.py:2085 +#: ipalib/plugins/baseldap.py:1605 ipalib/plugins/baseldap.py:2063 msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1632 ipalib/plugins/baseldap.py:2089 +#: ipalib/plugins/baseldap.py:1609 ipalib/plugins/baseldap.py:2067 msgid "Number of members removed" msgstr "" -#: ipalib/plugins/baseldap.py:1718 +#: ipalib/plugins/baseldap.py:1697 msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:1719 +#: ipalib/plugins/baseldap.py:1698 #, python-format msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:1727 +#: ipalib/plugins/baseldap.py:1706 #, python-format msgid "" "Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1728 +#: ipalib/plugins/baseldap.py:1707 #, python-format msgid "" "Search for %(searched_object)s without these %(relationship)s " "%(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1737 +#: ipalib/plugins/baseldap.py:1716 msgid "Time Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1738 +#: ipalib/plugins/baseldap.py:1717 msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/baseldap.py:1744 ipalib/plugins/hbactest.py:214 +#: ipalib/plugins/baseldap.py:1723 ipalib/plugins/cert.py:697 +#: ipalib/plugins/hbactest.py:285 msgid "Size Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1745 +#: ipalib/plugins/baseldap.py:1724 msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/baseldap.py:1758 +#: ipalib/plugins/baseldap.py:1737 msgid "A string searched in all relevant object attributes" msgstr "" -#: ipalib/plugins/baseldap.py:2036 -msgid "added" -msgstr "" - -#: ipalib/plugins/baseldap.py:2138 -msgid "removed" -msgstr "" - #: ipalib/plugins/batch.py:62 msgid "Nested Methods to execute" msgstr "" -#: ipalib/plugins/cert.py:43 +#: ipalib/plugins/cert.py:45 msgid "" "\n" "IPA certificate operations\n" @@ -1885,6 +1901,18 @@ msgid "" "* 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" @@ -1902,6 +1930,15 @@ msgid "" " 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" @@ -1925,186 +1962,261 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/cert.py:112 +#: ipalib/plugins/cert.py:146 msgid "Failure decoding Certificate Signing Request:" msgstr "" -#: ipalib/plugins/cert.py:125 ipalib/plugins/cert.py:142 +#: ipalib/plugins/cert.py:159 ipalib/plugins/cert.py:176 msgid "Failure decoding Certificate Signing Request" msgstr "" -#: ipalib/plugins/cert.py:144 +#: ipalib/plugins/cert.py:178 #, python-format msgid "Failure decoding Certificate Signing Request: %s" msgstr "" -#: ipalib/plugins/cert.py:207 +#: ipalib/plugins/cert.py:241 msgid "Submit a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:211 +#: ipalib/plugins/cert.py:245 msgid "CSR" msgstr "" -#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:246 +#: ipalib/plugins/cert.py:254 ipalib/plugins/service.py:321 msgid "Principal" msgstr "" -#: ipalib/plugins/cert.py:221 +#: ipalib/plugins/cert.py:255 msgid "Service principal for this certificate (e.g. HTTP/test.example.com)" msgstr "" -#: ipalib/plugins/cert.py:228 +#: ipalib/plugins/cert.py:262 msgid "automatically add the principal if it doesn't exist" msgstr "" -#: ipalib/plugins/cert.py:236 ipalib/plugins/cert.py:443 -#: ipalib/plugins/entitle.py:175 ipalib/plugins/host.py:298 -#: ipalib/plugins/internal.py:392 ipalib/plugins/service.py:253 +#: ipalib/plugins/cert.py:270 ipalib/plugins/cert.py:482 +#: ipalib/plugins/entitle.py:176 ipalib/plugins/host.py:304 +#: ipalib/plugins/internal.py:319 ipalib/plugins/internal.py:415 +#: ipalib/plugins/service.py:328 msgid "Certificate" msgstr "" -#: ipalib/plugins/cert.py:239 ipalib/plugins/cert.py:446 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:97 +#: ipalib/plugins/cert.py:273 ipalib/plugins/cert.py:485 +#: ipalib/plugins/cert.py:639 ipalib/plugins/cert.py:640 +#: ipalib/plugins/host.py:165 ipalib/plugins/internal.py:332 +#: ipalib/plugins/service.py:102 msgid "Subject" msgstr "" -#: ipalib/plugins/cert.py:242 ipalib/plugins/cert.py:449 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:106 +#: ipalib/plugins/cert.py:276 ipalib/plugins/cert.py:488 +#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:111 msgid "Issuer" msgstr "" -#: ipalib/plugins/cert.py:245 ipalib/plugins/cert.py:452 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:109 +#: ipalib/plugins/cert.py:279 ipalib/plugins/cert.py:491 +#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:114 msgid "Not Before" msgstr "" -#: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:455 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:112 +#: ipalib/plugins/cert.py:282 ipalib/plugins/cert.py:494 +#: ipalib/plugins/host.py:180 ipalib/plugins/service.py:117 msgid "Not After" msgstr "" -#: ipalib/plugins/cert.py:251 ipalib/plugins/cert.py:458 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:115 +#: ipalib/plugins/cert.py:285 ipalib/plugins/cert.py:497 +#: ipalib/plugins/host.py:183 ipalib/plugins/service.py:120 msgid "Fingerprint (MD5)" msgstr "" -#: ipalib/plugins/cert.py:254 ipalib/plugins/cert.py:461 -#: ipalib/plugins/host.py:180 ipalib/plugins/service.py:118 +#: ipalib/plugins/cert.py:288 ipalib/plugins/cert.py:500 +#: ipalib/plugins/host.py:186 ipalib/plugins/service.py:123 msgid "Fingerprint (SHA1)" msgstr "" -#: ipalib/plugins/cert.py:257 ipalib/plugins/cert.py:431 +#: ipalib/plugins/cert.py:291 ipalib/plugins/cert.py:470 +#: ipalib/plugins/cert.py:711 msgid "Serial number" msgstr "" -#: ipalib/plugins/cert.py:260 ipalib/plugins/cert.py:467 +#: ipalib/plugins/cert.py:294 ipalib/plugins/cert.py:506 +#: ipalib/plugins/cert.py:708 msgid "Serial number (hex)" msgstr "" -#: ipalib/plugins/cert.py:267 ipalib/plugins/entitle.py:231 -#: ipalib/plugins/entitle.py:590 ipalib/plugins/misc.py:57 +#: ipalib/plugins/cert.py:301 ipalib/plugins/entitle.py:232 +#: ipalib/plugins/entitle.py:593 ipalib/plugins/misc.py:57 msgid "Dictionary mapping variable name to value" msgstr "" -#: ipalib/plugins/cert.py:302 +#: ipalib/plugins/cert.py:334 +msgid "No hostname was found in subject of request." +msgstr "" + +#: ipalib/plugins/cert.py:339 #, python-format msgid "" "hostname in subject of request '%(subject_host)s' does not match principal " "hostname '%(hostname)s'" msgstr "" -#: ipalib/plugins/cert.py:320 +#: ipalib/plugins/cert.py:357 msgid "The service principal for this request doesn't exist." msgstr "" -#: ipalib/plugins/cert.py:326 +#: ipalib/plugins/cert.py:363 msgid "You need to be a member of the serviceadmin role to add services" msgstr "" -#: ipalib/plugins/cert.py:331 +#: ipalib/plugins/cert.py:368 #, python-format msgid "" "Insufficient 'write' privilege to the 'userCertificate' attribute of entry " "'%s'." msgstr "" -#: ipalib/plugins/cert.py:346 +#: ipalib/plugins/cert.py:384 #, python-format msgid "no host record for subject alt name %s in certificate request" msgstr "" -#: ipalib/plugins/cert.py:352 +#: ipalib/plugins/cert.py:390 #, python-format msgid "" "Insufficient privilege to create a certificate with subject alt name '%s'." msgstr "" -#: ipalib/plugins/cert.py:404 +#: ipalib/plugins/cert.py:443 msgid "Check the status of a certificate signing request." msgstr "" -#: ipalib/plugins/cert.py:408 +#: ipalib/plugins/cert.py:447 msgid "Request id" msgstr "" -#: ipalib/plugins/cert.py:414 +#: ipalib/plugins/cert.py:453 msgid "Request status" msgstr "" -#: ipalib/plugins/cert.py:432 +#: ipalib/plugins/cert.py:471 msgid "Serial number in decimal or if prefixed with 0x in hexadecimal" msgstr "" -#: ipalib/plugins/cert.py:437 +#: ipalib/plugins/cert.py:476 msgid "Retrieve an existing certificate." msgstr "" -#: ipalib/plugins/cert.py:464 ipalib/plugins/host.py:183 -#: ipalib/plugins/service.py:121 +#: ipalib/plugins/cert.py:503 ipalib/plugins/host.py:189 +#: ipalib/plugins/internal.py:329 ipalib/plugins/internal.py:358 +#: ipalib/plugins/service.py:126 msgid "Revocation reason" msgstr "" -#: ipalib/plugins/cert.py:473 +#: ipalib/plugins/cert.py:512 msgid "Output filename" msgstr "" -#: ipalib/plugins/cert.py:474 +#: ipalib/plugins/cert.py:513 msgid "File to store the certificate in." msgstr "" -#: ipalib/plugins/cert.py:525 +#: ipalib/plugins/cert.py:564 msgid "Revoke a certificate." msgstr "" -#: ipalib/plugins/cert.py:531 +#: ipalib/plugins/cert.py:570 msgid "Revoked" msgstr "" -#: ipalib/plugins/cert.py:539 +#: ipalib/plugins/cert.py:578 ipalib/plugins/cert.py:644 msgid "Reason" msgstr "" -#: ipalib/plugins/cert.py:540 +#: ipalib/plugins/cert.py:579 ipalib/plugins/cert.py:645 msgid "Reason for revoking the certificate (0-10)" msgstr "" -#: ipalib/plugins/cert.py:561 +#: ipalib/plugins/cert.py:601 msgid "7 is not a valid revocation reason" msgstr "" -#: ipalib/plugins/cert.py:570 +#: ipalib/plugins/cert.py:611 msgid "Take a revoked certificate off hold." msgstr "" -#: ipalib/plugins/cert.py:576 +#: ipalib/plugins/cert.py:617 msgid "Unrevoked" msgstr "" -#: ipalib/plugins/cert.py:579 ipalib/plugins/internal.py:251 +#: ipalib/plugins/cert.py:620 ipalib/plugins/internal.py:249 msgid "Error" msgstr "" +#: ipalib/plugins/cert.py:635 +msgid "Search for existing certificates." +msgstr "" + +#: ipalib/plugins/cert.py:651 +msgid "minimum serial number" +msgstr "" + +#: ipalib/plugins/cert.py:656 +msgid "maximum serial number" +msgstr "" + +#: ipalib/plugins/cert.py:661 +msgid "match the common name exactly" +msgstr "" + +#: ipalib/plugins/cert.py:665 +msgid "Valid not after from this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:669 +msgid "Valid not after to this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:673 +msgid "Valid not before from this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:677 +msgid "Valid not before to this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:681 +msgid "Issued on from this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:685 +msgid "Issued on to this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:689 +msgid "Revoked on from this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:693 +msgid "Revoked on to this date (YYYY-mm-dd)" +msgstr "" + +#: ipalib/plugins/cert.py:698 +msgid "Maximum number of certs returned" +msgstr "" + +#: ipalib/plugins/cert.py:714 ipalib/plugins/internal.py:366 +#: ipalib/plugins/internal.py:432 ipalib/plugins/internal.py:493 +#: ipalib/plugins/internal.py:569 ipalib/plugins/internal.py:676 +msgid "Status" +msgstr "" + +#: ipalib/plugins/cert.py:719 +#, python-format +msgid "%(count)d certificate matched" +msgid_plural "%(count)d certificates matched" +msgstr[0] "" +msgstr[1] "" + #: ipalib/plugins/config.py:32 msgid "" "\n" @@ -2355,7 +2467,7 @@ msgid "" "\n" " When managing the list of attributes you need to include all attributes\n" " in the list, including existing ones. Add postalCode to the list:\n" -" ipa delegation-mod --attrs=street,postalCode --group=managers --" +" ipa delegation-mod --attrs=street --attrs=postalCode --group=managers --" "membergroup=employees \"managers edit employees' street\"\n" "\n" " Display our updated rule:\n" @@ -2385,58 +2497,61 @@ msgstr "" msgid "Delegation name" msgstr "" -#: ipalib/plugins/delegation.py:84 ipalib/plugins/selfservice.py:86 -msgid "" -"Comma-separated list of permissions to grant (read, write). Default is write." +#: ipalib/plugins/delegation.py:84 ipalib/plugins/selfservice.py:88 +msgid "Permissions to grant (read, write). Default is write." msgstr "" -#: ipalib/plugins/delegation.py:97 +#: ipalib/plugins/delegation.py:90 +msgid "Attributes to which the delegation applies" +msgstr "" + +#: ipalib/plugins/delegation.py:96 msgid "Member user group" msgstr "" -#: ipalib/plugins/delegation.py:98 +#: ipalib/plugins/delegation.py:97 msgid "User group to apply delegation to" msgstr "" -#: ipalib/plugins/delegation.py:131 +#: ipalib/plugins/delegation.py:130 msgid "Add a new delegation." msgstr "" -#: ipalib/plugins/delegation.py:133 +#: ipalib/plugins/delegation.py:132 #, python-format msgid "Added delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:152 +#: ipalib/plugins/delegation.py:151 msgid "Delete a delegation." msgstr "" -#: ipalib/plugins/delegation.py:155 +#: ipalib/plugins/delegation.py:154 #, python-format msgid "Deleted delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:170 +#: ipalib/plugins/delegation.py:169 msgid "Modify a delegation." msgstr "" -#: ipalib/plugins/delegation.py:172 +#: ipalib/plugins/delegation.py:171 #, python-format msgid "Modified delegation \"%(value)s\"" msgstr "" -#: ipalib/plugins/delegation.py:189 +#: ipalib/plugins/delegation.py:188 msgid "Search for delegations." msgstr "" -#: ipalib/plugins/delegation.py:192 +#: ipalib/plugins/delegation.py:191 #, python-format msgid "%(count)d delegation matched" msgid_plural "%(count)d delegations matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/delegation.py:215 +#: ipalib/plugins/delegation.py:214 msgid "Display information about a delegation." msgstr "" @@ -2482,8 +2597,9 @@ msgid "" "EXAMPLES:\n" "\n" " Add new zone:\n" -" ipa dnszone-add example.com --name-server=nameserver.example.com \\\n" -" --admin-email=admin@example.com\n" +" ipa dnszone-add example.com --name-server=ns \\\n" +" --admin-email=admin@example.com \\\n" +" --ip-address=10.0.0.1\n" "\n" " Add system permission that can be used for per-zone privilege delegation:\n" " ipa dnszone-add-permission example.com\n" @@ -2502,7 +2618,7 @@ msgid "" "\n" " Add new reverse zone specified by network IP address:\n" " ipa dnszone-add --name-from-ip=80.142.15.0/24 \\\n" -" --name-server=nameserver.example.com\n" +" --name-server=ns.example.com.\n" "\n" " Add second nameserver for example.com:\n" " ipa dnsrecord-add example.com @ --ns-rec=nameserver2.example.com\n" @@ -2606,6 +2722,17 @@ msgid "" " Show records for resource www in zone example.com\n" " ipa dnsrecord-show example.com www\n" "\n" +" Delegate zone sub.example to another nameserver:\n" +" ipa dnsrecord-add example.com ns.sub --a-rec=10.0.100.5\n" +" ipa dnsrecord-add example.com sub --ns-rec=ns.sub.example.com.\n" +"\n" +" If global forwarder is configured, all requests to sub.example.com will be\n" +" routed through the global forwarder. To change the behavior for example." +"com\n" +" zone only and forward the request directly to ns.sub.example.com., global\n" +" forwarding may be disabled per-zone:\n" +" ipa dnszone-mod example.com --forward-policy=none\n" +"\n" " Forward all requests for the zone external.com to another nameserver using\n" " a \"first\" policy (it will send the queries to the selected forwarder and " "if\n" @@ -2639,243 +2766,243 @@ msgid "" " ipa dnsconfig-mod --forwarder=10.0.0.1\n" msgstr "" -#: ipalib/plugins/dns.py:281 +#: ipalib/plugins/dns.py:292 #, python-format msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" msgstr "" -#: ipalib/plugins/dns.py:284 +#: ipalib/plugins/dns.py:295 msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/dns.py:297 +#: ipalib/plugins/dns.py:308 msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/dns.py:306 +#: ipalib/plugins/dns.py:317 msgid "each ACL element must be terminated with a semicolon" msgstr "" -#: ipalib/plugins/dns.py:323 +#: ipalib/plugins/dns.py:334 msgid "invalid address format" msgstr "" -#: ipalib/plugins/dns.py:365 ipalib/plugins/dns.py:408 +#: ipalib/plugins/dns.py:378 ipalib/plugins/dns.py:421 #, python-format msgid "invalid domain-name: %s" msgstr "" -#: ipalib/plugins/dns.py:394 +#: ipalib/plugins/dns.py:407 #, python-format msgid "%(port)s is not a valid port" msgstr "" -#: ipalib/plugins/dns.py:470 +#: ipalib/plugins/dns.py:483 #, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/dns.py:482 +#: ipalib/plugins/dns.py:495 #, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/dns.py:496 +#: ipalib/plugins/dns.py:509 #, python-format msgid "IP address %(ip)s is already assigned in domain %(domain)s." msgstr "" -#: ipalib/plugins/dns.py:509 +#: ipalib/plugins/dns.py:522 #, python-format msgid "" "Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s." msgstr "" -#: ipalib/plugins/dns.py:545 +#: ipalib/plugins/dns.py:558 #, python-format msgid "%s record" msgstr "" -#: ipalib/plugins/dns.py:547 +#: ipalib/plugins/dns.py:560 #, python-format -msgid "Comma-separated list of raw %s records" +msgid "Raw %s records" msgstr "" -#: ipalib/plugins/dns.py:548 +#: ipalib/plugins/dns.py:561 #, python-format msgid "%s Record" msgstr "" -#: ipalib/plugins/dns.py:549 +#: ipalib/plugins/dns.py:562 #, python-format msgid "(see RFC %s for details)" msgstr "" -#: ipalib/plugins/dns.py:605 +#: ipalib/plugins/dns.py:618 #, python-format msgid "'%s' is a required part of DNS record" msgstr "" -#: ipalib/plugins/dns.py:612 +#: ipalib/plugins/dns.py:625 msgid "Invalid number of parts!" msgstr "" -#: ipalib/plugins/dns.py:667 +#: ipalib/plugins/dns.py:680 #, python-format msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:683 +#: ipalib/plugins/dns.py:696 #, python-format msgid "format must be specified as \"%(format)s\" %(rfcs)s" msgstr "" -#: ipalib/plugins/dns.py:818 +#: ipalib/plugins/dns.py:831 msgid "Create reverse" msgstr "" -#: ipalib/plugins/dns.py:819 +#: ipalib/plugins/dns.py:832 msgid "Create reverse record for this IP Address" msgstr "" -#: ipalib/plugins/dns.py:854 +#: ipalib/plugins/dns.py:867 #, python-format msgid "Cannot create reverse record for \"%(value)s\": %(exc)s" msgstr "" -#: ipalib/plugins/dns.py:863 ipalib/plugins/dns.py:886 -#: ipalib/plugins/host.py:390 +#: ipalib/plugins/dns.py:876 ipalib/plugins/dns.py:899 +#: ipalib/plugins/host.py:396 msgid "IP Address" msgstr "" -#: ipalib/plugins/dns.py:872 ipalib/plugins/dns.py:1483 +#: ipalib/plugins/dns.py:885 ipalib/plugins/dns.py:1496 msgid "Record data" msgstr "" -#: ipalib/plugins/dns.py:895 +#: ipalib/plugins/dns.py:908 msgid "Subtype" msgstr "" -#: ipalib/plugins/dns.py:901 ipalib/plugins/dns.py:940 -#: ipalib/plugins/dns.py:1193 ipalib/plugins/dns.py:1290 -#: ipalib/plugins/dns.py:2780 +#: ipalib/plugins/dns.py:914 ipalib/plugins/dns.py:953 +#: ipalib/plugins/dns.py:1206 ipalib/plugins/dns.py:1303 +#: ipalib/plugins/dns.py:2896 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:915 +#: ipalib/plugins/dns.py:928 msgid "Certificate Type" msgstr "" -#: ipalib/plugins/dns.py:920 ipalib/plugins/dns.py:975 -#: ipalib/plugins/dns.py:1373 +#: ipalib/plugins/dns.py:933 ipalib/plugins/dns.py:988 +#: ipalib/plugins/dns.py:1386 msgid "Key Tag" msgstr "" -#: ipalib/plugins/dns.py:925 ipalib/plugins/dns.py:980 -#: ipalib/plugins/dns.py:1014 ipalib/plugins/dns.py:1351 -#: ipalib/plugins/dns.py:1399 +#: ipalib/plugins/dns.py:938 ipalib/plugins/dns.py:993 +#: ipalib/plugins/dns.py:1027 ipalib/plugins/dns.py:1364 +#: ipalib/plugins/dns.py:1412 msgid "Algorithm" msgstr "" -#: ipalib/plugins/dns.py:930 +#: ipalib/plugins/dns.py:943 msgid "Certificate/CRL" msgstr "" -#: ipalib/plugins/dns.py:941 +#: ipalib/plugins/dns.py:954 msgid "A hostname which this alias hostname points to" msgstr "" -#: ipalib/plugins/dns.py:961 ipalib/plugins/dns.py:1327 -#: ipalib/plugins/internal.py:501 +#: ipalib/plugins/dns.py:974 ipalib/plugins/dns.py:1340 +#: ipalib/plugins/internal.py:523 msgid "Target" msgstr "" -#: ipalib/plugins/dns.py:985 +#: ipalib/plugins/dns.py:998 msgid "Digest Type" msgstr "" -#: ipalib/plugins/dns.py:990 +#: ipalib/plugins/dns.py:1003 msgid "Digest" msgstr "" -#: ipalib/plugins/dns.py:1004 ipalib/plugins/dns.py:1269 +#: ipalib/plugins/dns.py:1017 ipalib/plugins/dns.py:1282 msgid "Flags" msgstr "" -#: ipalib/plugins/dns.py:1009 +#: ipalib/plugins/dns.py:1022 msgid "Protocol" msgstr "" -#: ipalib/plugins/dns.py:1019 +#: ipalib/plugins/dns.py:1032 msgid "Public Key" msgstr "" -#: ipalib/plugins/dns.py:1033 ipalib/plugins/dns.py:1174 -#: ipalib/plugins/dns.py:1263 +#: ipalib/plugins/dns.py:1046 ipalib/plugins/dns.py:1187 +#: ipalib/plugins/dns.py:1276 msgid "Preference" msgstr "" -#: ipalib/plugins/dns.py:1034 ipalib/plugins/dns.py:1175 +#: ipalib/plugins/dns.py:1047 ipalib/plugins/dns.py:1188 msgid "Preference given to this exchanger. Lower values are more preferred" msgstr "" -#: ipalib/plugins/dns.py:1040 ipalib/plugins/dns.py:1181 +#: ipalib/plugins/dns.py:1053 ipalib/plugins/dns.py:1194 msgid "Exchanger" msgstr "" -#: ipalib/plugins/dns.py:1041 +#: ipalib/plugins/dns.py:1054 msgid "A host willing to act as a key exchanger" msgstr "" -#: ipalib/plugins/dns.py:1050 +#: ipalib/plugins/dns.py:1063 msgid "Degrees Latitude" msgstr "" -#: ipalib/plugins/dns.py:1055 +#: ipalib/plugins/dns.py:1068 msgid "Minutes Latitude" msgstr "" -#: ipalib/plugins/dns.py:1060 +#: ipalib/plugins/dns.py:1073 msgid "Seconds Latitude" msgstr "" -#: ipalib/plugins/dns.py:1066 +#: ipalib/plugins/dns.py:1079 msgid "Direction Latitude" msgstr "" -#: ipalib/plugins/dns.py:1070 +#: ipalib/plugins/dns.py:1083 msgid "Degrees Longitude" msgstr "" -#: ipalib/plugins/dns.py:1075 +#: ipalib/plugins/dns.py:1088 msgid "Minutes Longitude" msgstr "" -#: ipalib/plugins/dns.py:1080 +#: ipalib/plugins/dns.py:1093 msgid "Seconds Longitude" msgstr "" -#: ipalib/plugins/dns.py:1086 +#: ipalib/plugins/dns.py:1099 msgid "Direction Longitude" msgstr "" -#: ipalib/plugins/dns.py:1090 +#: ipalib/plugins/dns.py:1103 msgid "Altitude" msgstr "" -#: ipalib/plugins/dns.py:1096 +#: ipalib/plugins/dns.py:1109 msgid "Size" msgstr "" -#: ipalib/plugins/dns.py:1102 +#: ipalib/plugins/dns.py:1115 msgid "Horizontal Precision" msgstr "" -#: ipalib/plugins/dns.py:1108 +#: ipalib/plugins/dns.py:1121 msgid "Vertical Precision" msgstr "" -#: ipalib/plugins/dns.py:1115 +#: ipalib/plugins/dns.py:1128 msgid "" "format must be specified as\n" " \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz" @@ -2890,499 +3017,543 @@ msgid "" " See RFC 1876 for details" msgstr "" -#: ipalib/plugins/dns.py:1164 +#: ipalib/plugins/dns.py:1177 #, python-format msgid "'%(required)s' must not be empty when '%(name)s' is set" msgstr "" -#: ipalib/plugins/dns.py:1182 +#: ipalib/plugins/dns.py:1195 msgid "A host willing to act as a mail exchanger" msgstr "" -#: ipalib/plugins/dns.py:1200 +#: ipalib/plugins/dns.py:1213 msgid "" "format must be specified as \"NEXT TYPE1 [TYPE2 [TYPE3 [...]]]\" (see RFC " "4034 for details)" msgstr "" -#: ipalib/plugins/dns.py:1207 +#: ipalib/plugins/dns.py:1220 msgid "Next Domain Name" msgstr "" -#: ipalib/plugins/dns.py:1210 +#: ipalib/plugins/dns.py:1223 msgid "Type Map" msgstr "" -#: ipalib/plugins/dns.py:1250 +#: ipalib/plugins/dns.py:1263 msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/dns.py:1258 +#: ipalib/plugins/dns.py:1271 msgid "Order" msgstr "" -#: ipalib/plugins/dns.py:1273 ipalib/plugins/hbactest.py:194 -#: ipalib/plugins/internal.py:540 ipalib/plugins/service.py:241 +#: ipalib/plugins/dns.py:1286 ipalib/plugins/hbactest.py:265 +#: ipalib/plugins/internal.py:568 ipalib/plugins/service.py:316 msgid "Service" msgstr "" -#: ipalib/plugins/dns.py:1276 +#: ipalib/plugins/dns.py:1289 msgid "Regular Expression" msgstr "" -#: ipalib/plugins/dns.py:1279 +#: ipalib/plugins/dns.py:1292 msgid "Replacement" msgstr "" -#: ipalib/plugins/dns.py:1291 +#: ipalib/plugins/dns.py:1304 msgid "The hostname this reverse record points to" msgstr "" -#: ipalib/plugins/dns.py:1311 ipalib/plugins/pwpolicy.py:265 +#: ipalib/plugins/dns.py:1324 ipalib/plugins/pwpolicy.py:265 msgid "Priority" msgstr "" -#: ipalib/plugins/dns.py:1316 +#: ipalib/plugins/dns.py:1329 msgid "Weight" msgstr "" -#: ipalib/plugins/dns.py:1321 +#: ipalib/plugins/dns.py:1334 msgid "Port" msgstr "" -#: ipalib/plugins/dns.py:1328 +#: ipalib/plugins/dns.py:1341 msgid "" "The domain name of the target host or '.' if the service is decidedly not " "available at this domain" msgstr "" -#: ipalib/plugins/dns.py:1337 +#: ipalib/plugins/dns.py:1350 msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" msgstr "" -#: ipalib/plugins/dns.py:1347 +#: ipalib/plugins/dns.py:1360 msgid "Type Covered" msgstr "" -#: ipalib/plugins/dns.py:1356 +#: ipalib/plugins/dns.py:1369 msgid "Labels" msgstr "" -#: ipalib/plugins/dns.py:1361 +#: ipalib/plugins/dns.py:1374 msgid "Original TTL" msgstr "" -#: ipalib/plugins/dns.py:1366 +#: ipalib/plugins/dns.py:1379 msgid "Signature Expiration" msgstr "" -#: ipalib/plugins/dns.py:1370 +#: ipalib/plugins/dns.py:1383 msgid "Signature Inception" msgstr "" -#: ipalib/plugins/dns.py:1378 +#: ipalib/plugins/dns.py:1391 msgid "Signer's Name" msgstr "" -#: ipalib/plugins/dns.py:1381 +#: ipalib/plugins/dns.py:1394 msgid "Signature" msgstr "" -#: ipalib/plugins/dns.py:1404 +#: ipalib/plugins/dns.py:1417 msgid "Fingerprint Type" msgstr "" -#: ipalib/plugins/dns.py:1409 +#: ipalib/plugins/dns.py:1422 msgid "Fingerprint" msgstr "" -#: ipalib/plugins/dns.py:1430 +#: ipalib/plugins/dns.py:1443 msgid "Text Data" msgstr "" -#: ipalib/plugins/dns.py:1477 +#: ipalib/plugins/dns.py:1490 msgid "Records" msgstr "" -#: ipalib/plugins/dns.py:1480 +#: ipalib/plugins/dns.py:1493 msgid "Record type" msgstr "" -#: ipalib/plugins/dns.py:1511 +#: ipalib/plugins/dns.py:1526 #, python-format msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:1529 +#: ipalib/plugins/dns.py:1544 msgid "Managedby permission" msgstr "" -#: ipalib/plugins/dns.py:1538 +#: ipalib/plugins/dns.py:1553 msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:1539 +#: ipalib/plugins/dns.py:1554 msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:1548 +#: ipalib/plugins/dns.py:1563 msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:1549 +#: ipalib/plugins/dns.py:1564 msgid "DNS Zone" msgstr "" -#: ipalib/plugins/dns.py:1555 +#: ipalib/plugins/dns.py:1570 msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:1556 +#: ipalib/plugins/dns.py:1571 msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/dns.py:1562 +#: ipalib/plugins/dns.py:1577 msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/dns.py:1563 +#: ipalib/plugins/dns.py:1578 msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/dns.py:1568 +#: ipalib/plugins/dns.py:1583 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:1569 +#: ipalib/plugins/dns.py:1584 msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:1574 ipalib/plugins/dns.py:1575 +#: ipalib/plugins/dns.py:1590 ipalib/plugins/dns.py:1591 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:1581 +#: ipalib/plugins/dns.py:1597 msgid "SOA serial" msgstr "" -#: ipalib/plugins/dns.py:1582 +#: ipalib/plugins/dns.py:1598 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:1590 +#: ipalib/plugins/dns.py:1606 msgid "SOA refresh" msgstr "" -#: ipalib/plugins/dns.py:1591 +#: ipalib/plugins/dns.py:1607 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:1599 +#: ipalib/plugins/dns.py:1615 msgid "SOA retry" msgstr "" -#: ipalib/plugins/dns.py:1600 +#: ipalib/plugins/dns.py:1616 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:1608 +#: ipalib/plugins/dns.py:1624 msgid "SOA expire" msgstr "" -#: ipalib/plugins/dns.py:1609 +#: ipalib/plugins/dns.py:1625 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:1617 +#: ipalib/plugins/dns.py:1633 msgid "SOA minimum" msgstr "" -#: ipalib/plugins/dns.py:1618 +#: ipalib/plugins/dns.py:1634 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:1626 +#: ipalib/plugins/dns.py:1642 msgid "SOA time to live" msgstr "" -#: ipalib/plugins/dns.py:1627 +#: ipalib/plugins/dns.py:1643 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:1633 +#: ipalib/plugins/dns.py:1649 msgid "SOA class" msgstr "" -#: ipalib/plugins/dns.py:1634 +#: ipalib/plugins/dns.py:1650 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:1639 ipalib/plugins/dns.py:1640 +#: ipalib/plugins/dns.py:1655 ipalib/plugins/dns.py:1656 msgid "BIND update policy" msgstr "" -#: ipalib/plugins/dns.py:1646 +#: ipalib/plugins/dns.py:1662 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:1647 +#: ipalib/plugins/dns.py:1663 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:1653 +#: ipalib/plugins/dns.py:1669 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:1654 +#: ipalib/plugins/dns.py:1670 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:1663 +#: ipalib/plugins/dns.py:1679 msgid "Allow query" msgstr "" -#: ipalib/plugins/dns.py:1664 +#: ipalib/plugins/dns.py:1680 msgid "" "Semicolon separated list of IP addresses or networks which are allowed to " "issue queries" msgstr "" -#: ipalib/plugins/dns.py:1672 +#: ipalib/plugins/dns.py:1688 msgid "Allow transfer" msgstr "" -#: ipalib/plugins/dns.py:1673 +#: ipalib/plugins/dns.py:1689 msgid "" "Semicolon separated list of IP addresses or networks which are allowed to " "transfer the zone" msgstr "" -#: ipalib/plugins/dns.py:1680 +#: ipalib/plugins/dns.py:1696 msgid "Zone forwarders" msgstr "" -#: ipalib/plugins/dns.py:1681 +#: ipalib/plugins/dns.py:1697 msgid "" -"A list of per-zone forwarders. A custom port can be specified for each " -"forwarder using a standard format \"IP_ADDRESS port PORT\"" +"Per-zone forwarders. A custom port can be specified for each forwarder using " +"a standard format \"IP_ADDRESS port PORT\"" msgstr "" -#: ipalib/plugins/dns.py:1687 ipalib/plugins/dns.py:2850 +#: ipalib/plugins/dns.py:1703 ipalib/plugins/dns.py:2966 msgid "Forward policy" msgstr "" -#: ipalib/plugins/dns.py:1692 ipalib/plugins/dns.py:2855 +#: ipalib/plugins/dns.py:1704 +msgid "" +"Per-zone conditional forwarding policy. Set to \"none\" to disable " +"forwarding to global forwarder for this zone. In that case, conditional zone " +"forwarders are disregarded." +msgstr "" + +#: ipalib/plugins/dns.py:1711 ipalib/plugins/dns.py:2973 msgid "Allow PTR sync" msgstr "" -#: ipalib/plugins/dns.py:1693 +#: ipalib/plugins/dns.py:1712 msgid "" "Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " "zone" msgstr "" -#: ipalib/plugins/dns.py:1723 +#: ipalib/plugins/dns.py:1774 msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1728 ipalib/plugins/dns.py:2210 -#: ipalib/plugins/host.py:382 ipalib/plugins/permission.py:297 -#: ipalib/plugins/service.py:293 +#: ipalib/plugins/dns.py:1779 ipalib/plugins/dns.py:1870 +#: ipalib/plugins/dns.py:2331 ipalib/plugins/host.py:388 +#: ipalib/plugins/permission.py:298 ipalib/plugins/realmdomains.py:90 +#: ipalib/plugins/service.py:369 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:1729 -msgid "Force DNS zone creation even if nameserver not in DNS." +#: ipalib/plugins/dns.py:1780 +msgid "Force DNS zone creation even if nameserver is not resolvable." msgstr "" -#: ipalib/plugins/dns.py:1732 -msgid "Add the nameserver to DNS with this IP address" +#: ipalib/plugins/dns.py:1783 +msgid "Add forward record for nameserver located in the created zone" msgstr "" -#: ipalib/plugins/dns.py:1739 +#: ipalib/plugins/dns.py:1790 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:1749 -msgid "Nameserver address is not a fully qualified domain name" +#: ipalib/plugins/dns.py:1800 +msgid "Nameserver address is not a domain name" msgstr "" -#: ipalib/plugins/dns.py:1776 +#: ipalib/plugins/dns.py:1813 +msgid "Nameserver for reverse zone cannot be a relative DNS name" +msgstr "" + +#: ipalib/plugins/dns.py:1817 +msgid "Nameserver DNS record is created for for forward zones only" +msgstr "" + +#: ipalib/plugins/dns.py:1821 +msgid "Nameserver DNS record is created only for nameservers in current zone" +msgstr "" + +#: ipalib/plugins/dns.py:1850 msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1790 +#: ipalib/plugins/dns.py:1852 +#, python-format +msgid "Deleted DNS zone \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/dns.py:1866 msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1798 +#: ipalib/plugins/dns.py:1871 +msgid "Force nameserver change even if nameserver not in DNS" +msgstr "" + +#: ipalib/plugins/dns.py:1888 msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:1822 +#: ipalib/plugins/dns.py:1912 msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:1824 +#: ipalib/plugins/dns.py:1914 msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:1844 +#: ipalib/plugins/dns.py:1934 msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1852 +#: ipalib/plugins/dns.py:1942 msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:1855 +#: ipalib/plugins/dns.py:1945 #, python-format msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1873 +#: ipalib/plugins/dns.py:1963 msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:1876 +#: ipalib/plugins/dns.py:1966 #, python-format msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1893 +#: ipalib/plugins/dns.py:1983 msgid "Add a permission for per-zone access delegation." msgstr "" -#: ipalib/plugins/dns.py:1896 +#: ipalib/plugins/dns.py:1986 #, python-format msgid "Added system permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1929 +#: ipalib/plugins/dns.py:2019 msgid "Remove a permission for per-zone access delegation." msgstr "" -#: ipalib/plugins/dns.py:1932 +#: ipalib/plugins/dns.py:2022 #, python-format msgid "Removed system permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1963 +#: ipalib/plugins/dns.py:2053 msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:1964 +#: ipalib/plugins/dns.py:2054 msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:1969 +#: ipalib/plugins/dns.py:2059 msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:1970 +#: ipalib/plugins/dns.py:2060 msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:1976 ipalib/plugins/dns.py:1977 +#: ipalib/plugins/dns.py:2066 ipalib/plugins/dns.py:2067 msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:1982 ipalib/plugins/dns.py:1983 +#: ipalib/plugins/dns.py:2072 ipalib/plugins/dns.py:2073 msgid "Time to live" msgstr "" -#: ipalib/plugins/dns.py:1987 +#: ipalib/plugins/dns.py:2077 msgid "Class" msgstr "" -#: ipalib/plugins/dns.py:1988 +#: ipalib/plugins/dns.py:2078 msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:1994 +#: ipalib/plugins/dns.py:2084 msgid "Structured" msgstr "" -#: ipalib/plugins/dns.py:1995 +#: ipalib/plugins/dns.py:2085 msgid "Parse all raw DNS records and return them in a structured way" msgstr "" -#: ipalib/plugins/dns.py:2026 +#: ipalib/plugins/dns.py:2116 #, python-format msgid "" "Reverse zone for PTR record should be a sub-zone of one the following fully " "qualified domains: %s" msgstr "" -#: ipalib/plugins/dns.py:2032 +#: ipalib/plugins/dns.py:2122 #, python-format msgid "" "Reverse zone %(name)s requires exactly %(count)d IP address components, " "%(user_count)d given" msgstr "" -#: ipalib/plugins/dns.py:2197 +#: ipalib/plugins/dns.py:2294 +msgid "only one CNAME record is allowed per name (RFC 2136, section 1.1.5)" +msgstr "" + +#: ipalib/plugins/dns.py:2300 +msgid "" +"CNAME record is not allowed to coexist with any other record (RFC 1034, " +"section 3.6.2)" +msgstr "" + +#: ipalib/plugins/dns.py:2312 +msgid "only one DNAME record is allowed per name (RFC 6672, section 2.4)" +msgstr "" + +#: ipalib/plugins/dns.py:2317 msgid "" -"CNAME record is not allowed to coexist with any other records except PTR" +"DNAME record is not allowed to coexist with an NS record except when located " +"in a zone root record (RFC 6672, section 2.3)" msgstr "" -#: ipalib/plugins/dns.py:2204 +#: ipalib/plugins/dns.py:2325 msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:2212 +#: ipalib/plugins/dns.py:2333 msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/dns.py:2249 +#: ipalib/plugins/dns.py:2370 msgid "Please choose a type of DNS resource record to be added" msgstr "" -#: ipalib/plugins/dns.py:2250 +#: ipalib/plugins/dns.py:2371 #, python-format msgid "The most common types for this type of zone are: %s\n" msgstr "" -#: ipalib/plugins/dns.py:2255 +#: ipalib/plugins/dns.py:2376 msgid "DNS resource record type" msgstr "" -#: ipalib/plugins/dns.py:2271 +#: ipalib/plugins/dns.py:2392 #, python-format msgid "Invalid or unsupported type. Allowed values are: %s" msgstr "" -#: ipalib/plugins/dns.py:2299 +#: ipalib/plugins/dns.py:2420 #, python-format msgid "Raw value of a DNS record was already set by \"%(name)s\" option" msgstr "" -#: ipalib/plugins/dns.py:2396 +#: ipalib/plugins/dns.py:2515 msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:2413 +#: ipalib/plugins/dns.py:2532 msgid "DNS zone root record cannot be renamed" msgstr "" -#: ipalib/plugins/dns.py:2431 +#: ipalib/plugins/dns.py:2550 msgid "DNS records can be only updated one at a time" msgstr "" -#: ipalib/plugins/dns.py:2514 +#: ipalib/plugins/dns.py:2630 msgid "No option to modify specific record provided." msgstr "" -#: ipalib/plugins/dns.py:2517 ipalib/plugins/dns.py:2689 +#: ipalib/plugins/dns.py:2633 ipalib/plugins/dns.py:2805 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:2539 +#: ipalib/plugins/dns.py:2655 #, python-format msgid "Modify %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:2547 +#: ipalib/plugins/dns.py:2663 #, python-format msgid "" "%(count)d %(type)s record skipped. Only one value per DNS record type can be " @@ -3393,104 +3564,110 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/dns.py:2559 +#: ipalib/plugins/dns.py:2675 #, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:2566 +#: ipalib/plugins/dns.py:2682 msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:2568 +#: ipalib/plugins/dns.py:2686 msgid "" "Neither --del-all nor options to delete a specific record provided.\n" "Command help may be consulted for all supported record types." msgstr "" -#: ipalib/plugins/dns.py:2574 +#: ipalib/plugins/dns.py:2692 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:2642 +#: ipalib/plugins/dns.py:2758 #, python-format msgid "Zone record '%s' cannot be deleted" msgstr "" -#: ipalib/plugins/dns.py:2681 +#: ipalib/plugins/dns.py:2797 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:2682 +#: ipalib/plugins/dns.py:2798 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:2710 +#: ipalib/plugins/dns.py:2826 #, python-format msgid "Delete %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:2721 +#: ipalib/plugins/dns.py:2837 msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:2738 +#: ipalib/plugins/dns.py:2854 msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:2773 +#: ipalib/plugins/dns.py:2889 msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:2776 +#: ipalib/plugins/dns.py:2892 #, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:2793 +#: ipalib/plugins/dns.py:2909 #, python-format msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/dns.py:2830 +#: ipalib/plugins/dns.py:2946 msgid "DNS configuration options" msgstr "" -#: ipalib/plugins/dns.py:2836 ipalib/plugins/dns.py:2837 +#: ipalib/plugins/dns.py:2952 ipalib/plugins/dns.py:2953 msgid "DNS Global Configuration" msgstr "" -#: ipalib/plugins/dns.py:2843 +#: ipalib/plugins/dns.py:2959 msgid "Global forwarders" msgstr "" -#: ipalib/plugins/dns.py:2844 +#: ipalib/plugins/dns.py:2960 +msgid "" +"Global forwarders. A custom port can be specified for each forwarder using a " +"standard format \"IP_ADDRESS port PORT\"" +msgstr "" + +#: ipalib/plugins/dns.py:2967 msgid "" -"A list of global forwarders. A custom port can be specified for each " -"forwarder using a standard format \"IP_ADDRESS port PORT\"" +"Global forwarding policy. Set to \"none\" to disable any configured global " +"forwarders." msgstr "" -#: ipalib/plugins/dns.py:2856 +#: ipalib/plugins/dns.py:2974 msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" msgstr "" -#: ipalib/plugins/dns.py:2860 +#: ipalib/plugins/dns.py:2978 msgid "Zone refresh interval" msgstr "" -#: ipalib/plugins/dns.py:2861 +#: ipalib/plugins/dns.py:2979 msgid "An interval between regular polls of the name server for new DNS zones" msgstr "" -#: ipalib/plugins/dns.py:2877 +#: ipalib/plugins/dns.py:2994 msgid "Global DNS configuration is empty" msgstr "" -#: ipalib/plugins/dns.py:2883 +#: ipalib/plugins/dns.py:3000 msgid "Modify global DNS configuration." msgstr "" -#: ipalib/plugins/dns.py:2894 +#: ipalib/plugins/dns.py:3011 msgid "Show the current global DNS configuration." msgstr "" @@ -3531,137 +3708,137 @@ msgid "" "Changes to /etc/rhsm/rhsm.conf require a restart of the httpd service.\n" msgstr "" -#: ipalib/plugins/entitle.py:151 ipalib/plugins/virtual.py:65 +#: ipalib/plugins/entitle.py:152 ipalib/plugins/virtual.py:65 msgid "not allowed to perform this command" msgstr "" -#: ipalib/plugins/entitle.py:184 +#: ipalib/plugins/entitle.py:185 msgid "entitlement" msgstr "" -#: ipalib/plugins/entitle.py:185 +#: ipalib/plugins/entitle.py:186 msgid "entitlements" msgstr "" -#: ipalib/plugins/entitle.py:191 +#: ipalib/plugins/entitle.py:192 msgid "Entitlements" msgstr "" -#: ipalib/plugins/entitle.py:192 +#: ipalib/plugins/entitle.py:193 msgid "Entitlement" msgstr "" -#: ipalib/plugins/entitle.py:209 +#: ipalib/plugins/entitle.py:210 msgid "Display current entitlements." msgstr "" -#: ipalib/plugins/entitle.py:215 ipalib/plugins/entitle.py:604 +#: ipalib/plugins/entitle.py:216 ipalib/plugins/entitle.py:607 msgid "UUID" msgstr "" -#: ipalib/plugins/entitle.py:218 ipalib/plugins/entitle.py:305 -#: ipalib/plugins/entitle.py:389 ipalib/plugins/entitle.py:577 -#: ipalib/plugins/entitle.py:691 ipalib/plugins/internal.py:405 +#: ipalib/plugins/entitle.py:219 ipalib/plugins/entitle.py:306 +#: ipalib/plugins/entitle.py:391 ipalib/plugins/entitle.py:580 +#: ipalib/plugins/entitle.py:692 ipalib/plugins/internal.py:428 msgid "Product" msgstr "" -#: ipalib/plugins/entitle.py:221 ipalib/plugins/entitle.py:285 -#: ipalib/plugins/entitle.py:295 ipalib/plugins/entitle.py:392 -#: ipalib/plugins/entitle.py:580 ipalib/plugins/entitle.py:681 +#: ipalib/plugins/entitle.py:222 ipalib/plugins/entitle.py:286 +#: ipalib/plugins/entitle.py:296 ipalib/plugins/entitle.py:394 +#: ipalib/plugins/entitle.py:583 ipalib/plugins/entitle.py:682 msgid "Quantity" msgstr "" -#: ipalib/plugins/entitle.py:224 ipalib/plugins/entitle.py:308 -#: ipalib/plugins/entitle.py:583 ipalib/plugins/entitle.py:694 -#: ipalib/plugins/internal.py:396 +#: ipalib/plugins/entitle.py:225 ipalib/plugins/entitle.py:309 +#: ipalib/plugins/entitle.py:586 ipalib/plugins/entitle.py:695 +#: ipalib/plugins/internal.py:419 msgid "Consumed" msgstr "" -#: ipalib/plugins/entitle.py:277 +#: ipalib/plugins/entitle.py:278 msgid "Consume an entitlement." msgstr "" -#: ipalib/plugins/entitle.py:281 +#: ipalib/plugins/entitle.py:282 #, python-format msgid "Consumed %(value)s entitlement(s)." msgstr "" -#: ipalib/plugins/entitle.py:344 +#: ipalib/plugins/entitle.py:346 #, python-format msgid "There are only %d entitlements left" msgstr "" -#: ipalib/plugins/entitle.py:383 +#: ipalib/plugins/entitle.py:385 msgid "Retrieve the entitlement certs." msgstr "" -#: ipalib/plugins/entitle.py:395 ipalib/plugins/internal.py:408 +#: ipalib/plugins/entitle.py:397 ipalib/plugins/internal.py:431 msgid "Start" msgstr "" -#: ipalib/plugins/entitle.py:398 ipalib/plugins/internal.py:399 +#: ipalib/plugins/entitle.py:400 ipalib/plugins/internal.py:422 msgid "End" msgstr "" -#: ipalib/plugins/entitle.py:401 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:342 ipalib/plugins/service.py:100 +#: ipalib/plugins/entitle.py:403 ipalib/plugins/host.py:168 +#: ipalib/plugins/internal.py:363 ipalib/plugins/service.py:105 msgid "Serial Number" msgstr "" -#: ipalib/plugins/entitle.py:436 ipalib/plugins/entitle.py:629 -#: ipalib/plugins/entitle.py:631 +#: ipalib/plugins/entitle.py:438 ipalib/plugins/entitle.py:632 +#: ipalib/plugins/entitle.py:634 msgid "Not an entitlement certificate" msgstr "" -#: ipalib/plugins/entitle.py:461 +#: ipalib/plugins/entitle.py:463 msgid "Search for entitlement accounts." msgstr "" -#: ipalib/plugins/entitle.py:474 +#: ipalib/plugins/entitle.py:476 msgid "Register to the entitlement system." msgstr "" -#: ipalib/plugins/entitle.py:478 +#: ipalib/plugins/entitle.py:480 msgid "Registered to entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:482 ipalib/plugins/internal.py:277 +#: ipalib/plugins/entitle.py:484 ipalib/plugins/internal.py:281 msgid "Username" msgstr "" -#: ipalib/plugins/entitle.py:489 +#: ipalib/plugins/entitle.py:491 msgid "Enrollment UUID (not implemented)" msgstr "" -#: ipalib/plugins/entitle.py:494 +#: ipalib/plugins/entitle.py:496 msgid "Registration password" msgstr "" -#: ipalib/plugins/entitle.py:514 +#: ipalib/plugins/entitle.py:516 msgid "No permission to register" msgstr "" -#: ipalib/plugins/entitle.py:520 +#: ipalib/plugins/entitle.py:522 msgid "Registering to specific UUID is not supported yet." msgstr "" -#: ipalib/plugins/entitle.py:573 +#: ipalib/plugins/entitle.py:576 msgid "Import an entitlement certificate." msgstr "" -#: ipalib/plugins/entitle.py:605 +#: ipalib/plugins/entitle.py:608 msgid "Enrollment UUID" msgstr "" -#: ipalib/plugins/entitle.py:670 +#: ipalib/plugins/entitle.py:671 msgid "Re-sync the local entitlement cache with the entitlement server." msgstr "" -#: ipalib/plugins/entitle.py:674 +#: ipalib/plugins/entitle.py:675 msgid "Entitlement(s) synchronized." msgstr "" -#: ipalib/plugins/group.py:32 +#: ipalib/plugins/group.py:33 msgid "" "\n" "Groups of users\n" @@ -3703,8 +3880,8 @@ msgid "" " To add the \"remoteadmins\" group to the \"localadmins\" group:\n" " ipa group-add-member --groups=remoteadmins localadmins\n" "\n" -" Add a list of users to the \"localadmins\" group:\n" -" ipa group-add-member --users=test1,test2 localadmins\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" @@ -3719,190 +3896,202 @@ msgid "" "POSIX\n" "groups.\n" "\n" -"An external group member is currently a Security Identifier as defined by\n" -"the trusted domain.\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. Make note of the trusted domain security identifier\n" -"\n" -" domainsid = `ipa trust-show <ad.domain> | grep Identifier | cut -d: -f2`\n" -"\n" -"2. Create group for the trusted domain admins' mapping and their local POSIX " +"1. Create group for the trusted domain admins' mapping and their local POSIX " "group:\n" "\n" " ipa group-add --desc='<ad.domain> admins external map' ad_admins_external " "--external\n" " ipa group-add --desc='<ad.domain> admins' ad_admins\n" "\n" -"3. Add security identifier of Domain Admins of the <ad.domain> to the " +"2. Add security identifier of Domain Admins of the <ad.domain> to the " "ad_admins_external\n" -" group (security identifier of <ad.domain SID>-513 is Domain Admins " -"group):\n" +" group:\n" "\n" -" ipa group-add-member ad_admins_external --external ${domainsid}-513\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" "\n" -"4. Allow members of ad_admins_external group to be associated with ad_admins " +"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 "" -#: ipalib/plugins/group.py:117 ipalib/plugins/group.py:226 -#: ipalib/plugins/group.py:416 ipalib/plugins/user.py:188 +#: ipalib/plugins/group.py:120 ipalib/plugins/group.py:229 +#: ipalib/plugins/group.py:449 ipalib/plugins/user.py:189 msgid "group" msgstr "" -#: ipalib/plugins/group.py:118 +#: ipalib/plugins/group.py:121 msgid "groups" msgstr "" -#: ipalib/plugins/group.py:137 ipalib/plugins/hbacrule.py:195 -#: ipalib/plugins/internal.py:494 ipalib/plugins/selinuxusermap.py:195 +#: ipalib/plugins/group.py:140 ipalib/plugins/hbacrule.py:190 +#: ipalib/plugins/internal.py:516 ipalib/plugins/selinuxusermap.py:195 #: ipalib/plugins/sudorule.py:159 msgid "User Groups" msgstr "" -#: ipalib/plugins/group.py:138 +#: ipalib/plugins/group.py:141 msgid "User Group" msgstr "" -#: ipalib/plugins/group.py:146 +#: ipalib/plugins/group.py:149 msgid "Group name" msgstr "" -#: ipalib/plugins/group.py:153 ipalib/plugins/sudocmdgroup.py:79 +#: ipalib/plugins/group.py:156 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "" -#: ipalib/plugins/group.py:157 ipalib/plugins/user.py:312 +#: ipalib/plugins/group.py:160 ipalib/plugins/user.py:311 msgid "GID" msgstr "" -#: ipalib/plugins/group.py:158 +#: ipalib/plugins/group.py:161 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:167 +#: ipalib/plugins/group.py:170 msgid "External member" msgstr "" -#: ipalib/plugins/group.py:168 -msgid "comma-separated SIDs of members of a trusted domain" +#: ipalib/plugins/group.py:171 +msgid "Members of a trusted domain in DOM\\name or name@domain form" msgstr "" -#: ipalib/plugins/group.py:174 +#: ipalib/plugins/group.py:177 msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:176 +#: ipalib/plugins/group.py:179 #, python-format msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:181 +#: ipalib/plugins/group.py:184 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:186 +#: ipalib/plugins/group.py:189 msgid "Allow adding external non-IPA members from trusted domains" msgstr "" -#: ipalib/plugins/group.py:211 +#: ipalib/plugins/group.py:214 msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:213 +#: ipalib/plugins/group.py:216 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:227 +#: ipalib/plugins/group.py:230 msgid "privileged group" msgstr "" -#: ipalib/plugins/group.py:245 +#: ipalib/plugins/group.py:248 msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:247 +#: ipalib/plugins/group.py:250 #, python-format msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:252 +#: ipalib/plugins/group.py:255 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:256 +#: ipalib/plugins/group.py:259 msgid "change to support external non-IPA members from trusted domains" msgstr "" -#: ipalib/plugins/group.py:315 +#: ipalib/plugins/group.py:318 msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:320 +#: ipalib/plugins/group.py:323 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/group.py:326 +#: ipalib/plugins/group.py:329 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:357 +#: ipalib/plugins/group.py:333 +msgid "search for POSIX groups" +msgstr "" + +#: ipalib/plugins/group.py:337 +msgid "" +"search for groups with support of external non-IPA members from trusted " +"domains" +msgstr "" + +#: ipalib/plugins/group.py:341 +msgid "search for non-POSIX groups" +msgstr "" + +#: ipalib/plugins/group.py:388 msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:363 +#: ipalib/plugins/group.py:394 msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:372 +#: ipalib/plugins/group.py:403 ipalib/plugins/group.py:457 +#: ipalib/plugins/hbactest.py:382 msgid "" "Cannot perform external member validation without Samba 4 support installed. " "Make sure you have installed server-trust-ad sub-package of IPA on the server" msgstr "" -#: ipalib/plugins/group.py:377 +#: ipalib/plugins/group.py:408 ipalib/plugins/group.py:462 msgid "" "Cannot perform join operation without own domain configured. Make sure you " "have run ipa-adtrust-install on the IPA server first" msgstr "" -#: ipalib/plugins/group.py:387 -msgid "external member" -msgstr "" - -#: ipalib/plugins/group.py:388 -msgid "values are not recognized as valid SIDs from trusted domain" -msgstr "" - -#: ipalib/plugins/group.py:403 +#: ipalib/plugins/group.py:436 msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/group.py:438 +#: ipalib/plugins/group.py:490 msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:441 +#: ipalib/plugins/group.py:493 #, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:462 +#: ipalib/plugins/group.py:514 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:468 +#: ipalib/plugins/group.py:520 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:487 +#: ipalib/plugins/group.py:539 msgid "Not a managed group" msgstr "" @@ -3911,15 +4100,15 @@ msgid "" "\n" "Host-based access control\n" "\n" -"Control who can access what services on what hosts and from where. You\n" -"can use HBAC to control which users or groups on a source host can\n" +"Control who can access what services on what hosts. You\n" +"can use HBAC to control which users or groups can\n" "access a service, or group of services, on a target host.\n" "\n" -"You can also specify a category of users, target hosts, and source\n" -"hosts. This is currently limited to \"all\", but might be expanded in the\n" +"You can also specify a category of users and target hosts.\n" +"This is currently limited to \"all\", but might be expanded in the\n" "future.\n" "\n" -"Target hosts and source hosts in HBAC rules must be hosts managed by IPA.\n" +"Target hosts in HBAC rules must be hosts managed by IPA.\n" "\n" "The available services and groups of services are controlled by the\n" "hbacsvc and hbacsvcgroup plug-ins respectively.\n" @@ -3929,7 +4118,7 @@ msgid "" " Create a rule, \"test1\", that grants all users access to the host \"server" "\" from\n" " anywhere:\n" -" ipa hbacrule-add --usercat=all --srchostcat=all test1\n" +" ipa hbacrule-add --usercat=all test1\n" " ipa hbacrule-add-host --hosts=server.example.com test1\n" "\n" " Display the properties of a named HBAC rule:\n" @@ -3937,7 +4126,7 @@ msgid "" "\n" " Create a rule for a specific service. This lets the user john access\n" " the sshd service on any machine from any machine:\n" -" ipa hbacrule-add --hostcat=all --srchostcat=all john_sshd\n" +" ipa hbacrule-add --hostcat=all john_sshd\n" " ipa hbacrule-add-user --users=john john_sshd\n" " ipa hbacrule-add-service --hbacsvcs=sshd john_sshd\n" "\n" @@ -3945,8 +4134,8 @@ msgid "" " the FTP service on any machine from any machine:\n" " ipa hbacsvcgroup-add ftpers\n" " ipa hbacsvc-add sftp\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=ftp,sftp ftpers\n" -" ipa hbacrule-add --hostcat=all --srchostcat=all john_ftp\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=ftp --hbacsvcs=sftp ftpers\n" +" ipa hbacrule-add --hostcat=all john_ftp\n" " ipa hbacrule-add-user --users=john john_ftp\n" " ipa hbacrule-add-service --hbacsvcgroups=ftpers john_ftp\n" "\n" @@ -4014,194 +4203,160 @@ msgstr "" msgid "Host category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:168 -msgid "Source host category" -msgstr "" - #: ipalib/plugins/hbacrule.py:169 -msgid "Source host category the rule applies to" -msgstr "" - -#: ipalib/plugins/hbacrule.py:174 msgid "Service category" msgstr "" -#: ipalib/plugins/hbacrule.py:175 +#: ipalib/plugins/hbacrule.py:170 msgid "Service category the rule applies to" msgstr "" -#: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:643 +#: ipalib/plugins/hbacrule.py:182 ipalib/plugins/internal.py:675 #: ipalib/plugins/selinuxusermap.py:187 ipalib/plugins/sudorule.py:114 msgid "Enabled" msgstr "" -#: ipalib/plugins/hbacrule.py:191 ipalib/plugins/internal.py:495 +#: ipalib/plugins/hbacrule.py:186 ipalib/plugins/internal.py:517 #: ipalib/plugins/selinuxusermap.py:191 ipalib/plugins/sudorule.py:155 -#: ipalib/plugins/user.py:224 +#: ipalib/plugins/user.py:225 msgid "Users" msgstr "" -#: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:247 -#: ipalib/plugins/internal.py:489 ipalib/plugins/selinuxusermap.py:199 +#: ipalib/plugins/hbacrule.py:194 ipalib/plugins/host.py:253 +#: ipalib/plugins/internal.py:511 ipalib/plugins/selinuxusermap.py:199 #: ipalib/plugins/sudorule.py:163 msgid "Hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:203 ipalib/plugins/hostgroup.py:75 -#: ipalib/plugins/internal.py:488 ipalib/plugins/selinuxusermap.py:203 +#: ipalib/plugins/hbacrule.py:198 ipalib/plugins/hostgroup.py:75 +#: ipalib/plugins/internal.py:510 ipalib/plugins/selinuxusermap.py:203 #: ipalib/plugins/sudorule.py:167 msgid "Host Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:207 -msgid "Source Hosts" -msgstr "" - -#: ipalib/plugins/hbacrule.py:211 -msgid "Source Host Groups" -msgstr "" - -#: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:436 -#: ipalib/plugins/service.py:240 +#: ipalib/plugins/hbacrule.py:204 ipalib/plugins/internal.py:458 +#: ipalib/plugins/service.py:315 msgid "Services" msgstr "" -#: ipalib/plugins/hbacrule.py:219 +#: ipalib/plugins/hbacrule.py:208 msgid "Service Groups" msgstr "" -#: ipalib/plugins/hbacrule.py:229 +#: ipalib/plugins/hbacrule.py:218 msgid "Create a new HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:231 +#: ipalib/plugins/hbacrule.py:220 #, python-format msgid "Added HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:243 +#: ipalib/plugins/hbacrule.py:232 msgid "Delete an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:245 +#: ipalib/plugins/hbacrule.py:234 #, python-format msgid "Deleted HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:260 +#: ipalib/plugins/hbacrule.py:249 msgid "Modify an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:262 +#: ipalib/plugins/hbacrule.py:251 #, python-format msgid "Modified HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:272 ipalib/plugins/netgroup.py:213 +#: ipalib/plugins/hbacrule.py:261 ipalib/plugins/netgroup.py:213 #: ipalib/plugins/sudorule.py:289 msgid "user category cannot be set to 'all' while there are allowed users" msgstr "" -#: ipalib/plugins/hbacrule.py:274 ipalib/plugins/netgroup.py:215 +#: ipalib/plugins/hbacrule.py:263 ipalib/plugins/netgroup.py:215 #: ipalib/plugins/sudorule.py:291 msgid "host category cannot be set to 'all' while there are allowed hosts" msgstr "" -#: ipalib/plugins/hbacrule.py:276 -msgid "" -"sourcehost category cannot be set to 'all' while there are allowed " -"sourcehosts" -msgstr "" - -#: ipalib/plugins/hbacrule.py:278 +#: ipalib/plugins/hbacrule.py:265 msgid "" "service category cannot be set to 'all' while there are allowed services" msgstr "" -#: ipalib/plugins/hbacrule.py:285 +#: ipalib/plugins/hbacrule.py:272 msgid "Search for HBAC rules." msgstr "" -#: ipalib/plugins/hbacrule.py:288 +#: ipalib/plugins/hbacrule.py:275 #, python-format msgid "%(count)d HBAC rule matched" msgid_plural "%(count)d HBAC rules matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/hbacrule.py:295 +#: ipalib/plugins/hbacrule.py:282 msgid "Display the properties of an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:301 +#: ipalib/plugins/hbacrule.py:288 msgid "Enable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:303 +#: ipalib/plugins/hbacrule.py:290 #, python-format msgid "Enabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:328 +#: ipalib/plugins/hbacrule.py:315 msgid "Disable an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:330 +#: ipalib/plugins/hbacrule.py:317 #, python-format msgid "Disabled HBAC rule \"%(value)s\"" msgstr "" -#: ipalib/plugins/hbacrule.py:362 ipalib/plugins/hbacrule.py:402 +#: ipalib/plugins/hbacrule.py:349 ipalib/plugins/hbacrule.py:389 msgid "Access time" msgstr "" -#: ipalib/plugins/hbacrule.py:436 +#: ipalib/plugins/hbacrule.py:423 msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:450 ipalib/plugins/selinuxusermap.py:460 +#: ipalib/plugins/hbacrule.py:437 ipalib/plugins/selinuxusermap.py:460 #: ipalib/plugins/sudorule.py:439 msgid "users cannot be added when user category='all'" msgstr "" -#: ipalib/plugins/hbacrule.py:457 +#: ipalib/plugins/hbacrule.py:444 msgid "Remove users and groups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:466 +#: ipalib/plugins/hbacrule.py:453 msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:480 ipalib/plugins/selinuxusermap.py:492 +#: ipalib/plugins/hbacrule.py:467 ipalib/plugins/selinuxusermap.py:492 #: ipalib/plugins/sudorule.py:475 msgid "hosts cannot be added when host category='all'" msgstr "" -#: ipalib/plugins/hbacrule.py:487 +#: ipalib/plugins/hbacrule.py:474 msgid "Remove target hosts and hostgroups from an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:496 -msgid "Add source hosts and hostgroups from a HBAC rule." -msgstr "" - -#: ipalib/plugins/hbacrule.py:510 -msgid "source hosts cannot be added when sourcehost category='all'" -msgstr "" - -#: ipalib/plugins/hbacrule.py:521 -msgid "Remove source hosts and hostgroups from an HBAC rule." -msgstr "" - -#: ipalib/plugins/hbacrule.py:534 +#: ipalib/plugins/hbacrule.py:507 msgid "Add services to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:548 +#: ipalib/plugins/hbacrule.py:521 msgid "services cannot be added when service category='all'" msgstr "" -#: ipalib/plugins/hbacrule.py:555 +#: ipalib/plugins/hbacrule.py:528 msgid "Remove service and service groups from an HBAC rule." msgstr "" @@ -4314,14 +4469,14 @@ msgid "" " ipa hbacsvcgroup-add --desc=\"login services\" login\n" "\n" " Add members to an HBAC service group:\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=sshd,login login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=sshd --hbacsvcs=login login\n" "\n" " Display information about a named group:\n" " ipa hbacsvcgroup-show login\n" "\n" " Add a new group to the \"login\" group:\n" " ipa hbacsvcgroup-add --desc=\"switch users\" login\n" -" ipa hbacsvcgroup-add-member --hbacsvcs=su,su-l login\n" +" ipa hbacsvcgroup-add-member --hbacsvcs=su --hbacsvcs=su-l login\n" "\n" " Delete an HBAC service group:\n" " ipa hbacsvcgroup-del login\n" @@ -4401,13 +4556,12 @@ msgstr "" msgid "Remove members from an HBAC service group." msgstr "" -#: ipalib/plugins/hbactest.py:27 +#: ipalib/plugins/hbactest.py:35 msgid "" "\n" "Simulate use of Host-based access controls\n" "\n" -"HBAC rules control who can access what services on what hosts and from " -"where.\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" @@ -4420,7 +4574,7 @@ msgid "" "\n" " ipa hbactest --user= --host= --service=\n" " [--rules=rules-list] [--nodetail] [--enabled] [--disabled]\n" -" [--srchost= ] [--sizelimit= ]\n" +" [--sizelimit= ]\n" "\n" " --user, --host, and --service are mandatory, others are optional.\n" "\n" @@ -4445,9 +4599,6 @@ msgid "" "change it\n" " with --sizelimit option.\n" "\n" -" If --srchost is specified, it will be ignored. It is left because of " -"compatibility reasons only.\n" -"\n" "EXAMPLES:\n" "\n" " 1. Use all enabled HBAC rules in IPA database to simulate:\n" @@ -4455,10 +4606,10 @@ msgid "" " --------------------\n" " Access granted: True\n" " --------------------\n" -" notmatched: my-second-rule\n" -" notmatched: my-third-rule\n" -" notmatched: myrule\n" -" matched: allow_all\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" @@ -4467,125 +4618,206 @@ msgid "" " --------------------\n" "\n" " 3. Test explicitly specified HBAC rules:\n" -" $ ipa hbactest --user=a1a --host=bar --service=sshd --rules=my-" -"second-rule,myrule\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule\n" " ---------------------\n" " Access granted: False\n" " ---------------------\n" -" notmatched: my-second-rule\n" -" notmatched: myrule\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 --rules=my-" -"second-rule,myrule --enabled\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --enabled\n" " --------------------\n" " Access granted: True\n" " --------------------\n" -" notmatched: my-second-rule\n" -" notmatched: my-third-rule\n" -" notmatched: myrule\n" -" matched: allow_all\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" -" notmatched: new-rule\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 --rules=my-" -"second-rule,myrule --disabled\n" +" $ ipa hbactest --user=a1a --host=bar --service=sshd \\\n" +" --rules=myrule --rules=my-second-rule --disabled\n" " ---------------------\n" " Access granted: False\n" " ---------------------\n" -" notmatched: my-second-rule\n" -" notmatched: my-third-rule\n" -" notmatched: myrule\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 --enabled " -"--disabled\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-500 \\\n" +" --host `hostname` --service sshd\n" " --------------------\n" " Access granted: True\n" " --------------------\n" -" notmatched: my-second-rule\n" -" notmatched: my-third-rule\n" -" notmatched: myrule\n" -" notmatched: new-rule\n" -" matched: allow_all\n" +" Matched rules: allow_all\n" +" 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 "" -#: ipalib/plugins/hbactest.py:167 +#: ipalib/plugins/hbactest.py:241 msgid "Simulate use of Host-based access controls" msgstr "" -#: ipalib/plugins/hbactest.py:171 +#: ipalib/plugins/hbactest.py:245 msgid "Warning" msgstr "" -#: ipalib/plugins/hbactest.py:172 +#: ipalib/plugins/hbactest.py:246 msgid "Matched rules" msgstr "" -#: ipalib/plugins/hbactest.py:173 +#: ipalib/plugins/hbactest.py:247 msgid "Not matched rules" msgstr "" -#: ipalib/plugins/hbactest.py:174 +#: ipalib/plugins/hbactest.py:248 msgid "Non-existent or invalid rules" msgstr "" -#: ipalib/plugins/hbactest.py:175 +#: ipalib/plugins/hbactest.py:249 msgid "Result of simulation" msgstr "" -#: ipalib/plugins/hbactest.py:181 ipalib/plugins/krbtpolicy.py:85 +#: ipalib/plugins/hbactest.py:255 ipalib/plugins/krbtpolicy.py:85 #: ipalib/plugins/passwd.py:70 msgid "User name" msgstr "" -#: ipalib/plugins/hbactest.py:186 -msgid "Source host" -msgstr "" - -#: ipalib/plugins/hbactest.py:190 +#: ipalib/plugins/hbactest.py:261 msgid "Target host" msgstr "" -#: ipalib/plugins/hbactest.py:198 +#: ipalib/plugins/hbactest.py:269 msgid "Rules to test. If not specified, --enabled is assumed" msgstr "" -#: ipalib/plugins/hbactest.py:203 +#: ipalib/plugins/hbactest.py:274 msgid "Hide details which rules are matched, not matched, or invalid" msgstr "" -#: ipalib/plugins/hbactest.py:207 +#: ipalib/plugins/hbactest.py:278 msgid "Include all enabled IPA rules into test [default]" msgstr "" -#: ipalib/plugins/hbactest.py:211 +#: ipalib/plugins/hbactest.py:282 msgid "Include all disabled IPA rules into test" msgstr "" -#: ipalib/plugins/hbactest.py:215 +#: ipalib/plugins/hbactest.py:286 msgid "Maximum number of rules to process when no --rules is specified" msgstr "" -#: ipalib/plugins/hbactest.py:293 +#: ipalib/plugins/hbactest.py:364 msgid "Unresolved rules in --rules" msgstr "" -#: ipalib/plugins/hbactest.py:362 -#, python-format -msgid "Sourcehost value of rule \"%s\" is ignored" +#: ipalib/plugins/hbactest.py:388 +msgid "" +"Cannot search in trusted domains without own domain configured. Make sure " +"you have run ipa-adtrust-install on the IPA server first" msgstr "" -#: ipalib/plugins/hbactest.py:376 +#: ipalib/plugins/hbactest.py:475 #, python-format msgid "Access granted: %s" msgstr "" @@ -4650,210 +4882,210 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:150 ipalib/plugins/service.py:91 +#: ipalib/plugins/host.py:156 ipalib/plugins/service.py:96 msgid "Keytab" msgstr "" -#: ipalib/plugins/host.py:165 ipalib/plugins/internal.py:343 -#: ipalib/plugins/service.py:103 +#: ipalib/plugins/host.py:171 ipalib/plugins/internal.py:364 +#: ipalib/plugins/service.py:108 msgid "Serial Number (hex)" msgstr "" -#: ipalib/plugins/host.py:186 +#: ipalib/plugins/host.py:192 msgid "Failed managedby" msgstr "" -#: ipalib/plugins/host.py:189 ipalib/plugins/user.py:91 +#: ipalib/plugins/host.py:195 ipalib/plugins/user.py:92 msgid "SSH public key fingerprint" msgstr "" -#: ipalib/plugins/host.py:215 +#: ipalib/plugins/host.py:221 msgid "host" msgstr "" -#: ipalib/plugins/host.py:216 +#: ipalib/plugins/host.py:222 msgid "hosts" msgstr "" -#: ipalib/plugins/host.py:248 ipalib/plugins/internal.py:487 -#: ipalib/plugins/internal.py:528 +#: ipalib/plugins/host.py:254 ipalib/plugins/internal.py:509 +#: ipalib/plugins/internal.py:556 msgid "Host" msgstr "" -#: ipalib/plugins/host.py:253 +#: ipalib/plugins/host.py:259 msgid "Host name" msgstr "" -#: ipalib/plugins/host.py:260 +#: ipalib/plugins/host.py:266 msgid "A description of this host" msgstr "" -#: ipalib/plugins/host.py:264 +#: ipalib/plugins/host.py:270 msgid "Locality" msgstr "" -#: ipalib/plugins/host.py:265 +#: ipalib/plugins/host.py:271 msgid "Host locality (e.g. \"Baltimore, MD\")" msgstr "" -#: ipalib/plugins/host.py:270 +#: ipalib/plugins/host.py:276 msgid "Host location (e.g. \"Lab 2\")" msgstr "" -#: ipalib/plugins/host.py:274 +#: ipalib/plugins/host.py:280 msgid "Platform" msgstr "" -#: ipalib/plugins/host.py:275 +#: ipalib/plugins/host.py:281 msgid "Host hardware platform (e.g. \"Lenovo T61\")" msgstr "" -#: ipalib/plugins/host.py:279 +#: ipalib/plugins/host.py:285 msgid "Operating system" msgstr "" -#: ipalib/plugins/host.py:280 +#: ipalib/plugins/host.py:286 msgid "Host operating system and version (e.g. \"Fedora 9\")" msgstr "" -#: ipalib/plugins/host.py:284 +#: ipalib/plugins/host.py:290 msgid "User password" msgstr "" -#: ipalib/plugins/host.py:285 +#: ipalib/plugins/host.py:291 msgid "Password used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:288 +#: ipalib/plugins/host.py:294 msgid "Generate a random password to be used in bulk enrollment" msgstr "" -#: ipalib/plugins/host.py:293 ipalib/plugins/user.py:300 +#: ipalib/plugins/host.py:299 ipalib/plugins/user.py:301 msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:299 ipalib/plugins/service.py:254 +#: ipalib/plugins/host.py:305 ipalib/plugins/service.py:329 msgid "Base-64 encoded server certificate" msgstr "" -#: ipalib/plugins/host.py:302 ipalib/plugins/host.py:607 +#: ipalib/plugins/host.py:308 ipalib/plugins/host.py:618 msgid "Principal name" msgstr "" -#: ipalib/plugins/host.py:310 +#: ipalib/plugins/host.py:316 msgid "MAC address" msgstr "" -#: ipalib/plugins/host.py:311 +#: ipalib/plugins/host.py:317 msgid "Hardware MAC address(es) on this host" msgstr "" -#: ipalib/plugins/host.py:315 ipalib/plugins/user.py:366 +#: ipalib/plugins/host.py:321 ipalib/plugins/user.py:363 msgid "SSH public key" msgstr "" -#: ipalib/plugins/host.py:375 +#: ipalib/plugins/host.py:381 msgid "Add a new host." msgstr "" -#: ipalib/plugins/host.py:378 +#: ipalib/plugins/host.py:384 #, python-format msgid "Added host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:383 +#: ipalib/plugins/host.py:389 msgid "force host name even if not in DNS" msgstr "" -#: ipalib/plugins/host.py:386 +#: ipalib/plugins/host.py:392 msgid "skip reverse DNS detection" msgstr "" -#: ipalib/plugins/host.py:389 +#: ipalib/plugins/host.py:395 msgid "Add the host to DNS with this IP address" msgstr "" -#: ipalib/plugins/host.py:468 +#: ipalib/plugins/host.py:476 #, python-format msgid "The host was added but the DNS update failed with: %(exc)s" msgstr "" -#: ipalib/plugins/host.py:488 +#: ipalib/plugins/host.py:497 msgid "Delete a host." msgstr "" -#: ipalib/plugins/host.py:490 +#: ipalib/plugins/host.py:499 #, python-format msgid "Deleted host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:495 +#: ipalib/plugins/host.py:504 msgid "Remove entries from DNS" msgstr "" -#: ipalib/plugins/host.py:598 +#: ipalib/plugins/host.py:609 msgid "Modify information about a host." msgstr "" -#: ipalib/plugins/host.py:601 +#: ipalib/plugins/host.py:612 #, python-format msgid "Modified host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:608 +#: ipalib/plugins/host.py:619 msgid "Kerberos principal name for this host" msgstr "" -#: ipalib/plugins/host.py:612 +#: ipalib/plugins/host.py:623 msgid "Update DNS entries" msgstr "" -#: ipalib/plugins/host.py:625 +#: ipalib/plugins/host.py:636 msgid "Password cannot be set on enrolled host." msgstr "" -#: ipalib/plugins/host.py:629 +#: ipalib/plugins/host.py:640 msgid "cn is immutable" msgstr "" -#: ipalib/plugins/host.py:733 +#: ipalib/plugins/host.py:759 msgid "Search for hosts." msgstr "" -#: ipalib/plugins/host.py:737 +#: ipalib/plugins/host.py:763 #, python-format msgid "%(count)d host matched" msgid_plural "%(count)d hosts matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/host.py:818 +#: ipalib/plugins/host.py:845 msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:823 ipalib/plugins/service.py:472 +#: ipalib/plugins/host.py:850 ipalib/plugins/service.py:560 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:854 ipalib/plugins/service.py:491 +#: ipalib/plugins/host.py:882 ipalib/plugins/service.py:580 #, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" -#: ipalib/plugins/host.py:865 +#: ipalib/plugins/host.py:893 msgid "Disable the Kerberos key, SSL certificate and all services of a host." msgstr "" -#: ipalib/plugins/host.py:868 +#: ipalib/plugins/host.py:896 #, python-format msgid "Disabled host \"%(value)s\"" msgstr "" -#: ipalib/plugins/host.py:957 +#: ipalib/plugins/host.py:989 msgid "Add hosts that can manage this host." msgstr "" -#: ipalib/plugins/host.py:972 +#: ipalib/plugins/host.py:1004 msgid "Remove hosts that can manage this host." msgstr "" @@ -4873,8 +5105,8 @@ msgid "" " Add another new host group:\n" " ipa hostgroup-add --desc=\"Maryland hosts\" maryland\n" "\n" -" Add members to the hostgroup:\n" -" ipa hostgroup-add-member --hosts=box1,box2,box3 baltimore\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" @@ -4996,7 +5228,7 @@ msgid "" "\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" +" - sid: domain SID of the trusted domain\n" "\n" "\n" "\n" @@ -5061,7 +5293,6 @@ msgid "" "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" -"The use cases for this CLI are\n" "\n" "USE CASES:\n" "\n" @@ -5102,75 +5333,94 @@ msgid "" "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 "" -#: ipalib/plugins/idrange.py:161 +#: ipalib/plugins/idrange.py:171 msgid "ID Ranges" msgstr "" -#: ipalib/plugins/idrange.py:162 +#: ipalib/plugins/idrange.py:172 msgid "ID Range" msgstr "" -#: ipalib/plugins/idrange.py:167 +#: ipalib/plugins/idrange.py:177 msgid "Range name" msgstr "" -#: ipalib/plugins/idrange.py:172 +#: ipalib/plugins/idrange.py:182 msgid "First Posix ID of the range" msgstr "" -#: ipalib/plugins/idrange.py:176 +#: ipalib/plugins/idrange.py:186 msgid "Number of IDs in the range" msgstr "" -#: ipalib/plugins/idrange.py:180 +#: ipalib/plugins/idrange.py:190 msgid "First RID of the corresponding RID range" msgstr "" -#: ipalib/plugins/idrange.py:184 +#: ipalib/plugins/idrange.py:194 msgid "First RID of the secondary RID range" msgstr "" -#: ipalib/plugins/idrange.py:188 +#: ipalib/plugins/idrange.py:198 msgid "Domain SID of the trusted domain" msgstr "" -#: ipalib/plugins/idrange.py:191 ipalib/plugins/internal.py:516 +#: ipalib/plugins/idrange.py:203 +msgid "Name of the trusted domain" +msgstr "" + +#: ipalib/plugins/idrange.py:206 ipalib/plugins/internal.py:538 msgid "Range type" msgstr "" -#: ipalib/plugins/idrange.py:199 +#: ipalib/plugins/idrange.py:214 msgid "Active Directory domain range" msgstr "" -#: ipalib/plugins/idrange.py:201 +#: ipalib/plugins/idrange.py:216 msgid "local domain range" msgstr "" -#: ipalib/plugins/idrange.py:255 +#: ipalib/plugins/idrange.py:270 msgid "" "range modification leaving objects with ID out of the defined range is not " "allowed" msgstr "" -#: ipalib/plugins/idrange.py:260 +#: ipalib/plugins/idrange.py:275 msgid "" "Cannot perform SID validation without Samba 4 support installed. Make sure " "you have installed server-trust-ad sub-package of IPA on the server" msgstr "" -#: ipalib/plugins/idrange.py:264 +#: ipalib/plugins/idrange.py:282 msgid "" "Cross-realm trusts are not configured. Make sure you have run ipa-adtrust-" "install on the IPA server first" msgstr "" -#: ipalib/plugins/idrange.py:268 +#: ipalib/plugins/idrange.py:294 msgid "SID is not recognized as a valid SID for a trusted domain" msgstr "" -#: ipalib/plugins/idrange.py:271 +#: ipalib/plugins/idrange.py:330 msgid "" "\n" " Add new ID range.\n" @@ -5191,59 +5441,97 @@ msgid "" " --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 "" -#: ipalib/plugins/idrange.py:292 +#: ipalib/plugins/idrange.py:362 #, python-format msgid "Added ID range \"%(value)s\"" msgstr "" -#: ipalib/plugins/idrange.py:300 -msgid "Options dom_sid and secondary_rid_base cannot be used together" +#: ipalib/plugins/idrange.py:374 ipalib/plugins/idrange.py:504 +msgid "Options dom-sid and dom-name cannot be used together" msgstr "" -#: ipalib/plugins/idrange.py:305 -msgid "Options dom_sid and rid_base must be used together" +#: ipalib/plugins/idrange.py:384 ipalib/plugins/idrange.py:516 +msgid "" +"SID for the specified trusted domain name could not be found. Please specify " +"the SID directly using dom-sid option." msgstr "" -#: ipalib/plugins/idrange.py:315 -msgid "Options secondary_rid_base and rid_base must be used together" +#: ipalib/plugins/idrange.py:391 +msgid "Options dom-sid/dom-name and secondary-rid-base cannot be used together" msgstr "" -#: ipalib/plugins/idrange.py:328 +#: ipalib/plugins/idrange.py:396 +msgid "Options dom-sid/dom-name and rid-base must be used together" +msgstr "" + +#: ipalib/plugins/idrange.py:408 ipalib/plugins/idrange.py:546 +msgid "Options secondary-rid-base and rid-base must be used together" +msgstr "" + +#: ipalib/plugins/idrange.py:418 ipalib/plugins/idrange.py:569 +msgid "Primary RID range and secondary RID range cannot overlap" +msgstr "" + +#: ipalib/plugins/idrange.py:431 msgid "Delete an ID range." msgstr "" -#: ipalib/plugins/idrange.py:330 +#: ipalib/plugins/idrange.py:433 #, python-format msgid "Deleted ID range \"%(value)s\"" msgstr "" -#: ipalib/plugins/idrange.py:345 +#: ipalib/plugins/idrange.py:448 msgid "Search for ranges." msgstr "" -#: ipalib/plugins/idrange.py:348 +#: ipalib/plugins/idrange.py:451 #, python-format msgid "%(count)d range matched" msgid_plural "%(count)d ranges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/idrange.py:364 +#: ipalib/plugins/idrange.py:467 msgid "Display information about a range." msgstr "" -#: ipalib/plugins/idrange.py:377 +#: ipalib/plugins/idrange.py:480 msgid "Modify ID range." msgstr "" -#: ipalib/plugins/idrange.py:379 +#: ipalib/plugins/idrange.py:482 #, python-format msgid "Modified ID range \"%(value)s\"" msgstr "" +#: ipalib/plugins/idrange.py:523 +msgid "Options dom-sid and secondary-rid-base cannot be used together" +msgstr "" + +#: ipalib/plugins/idrange.py:528 +msgid "Options dom-sid and rid-base must be used together" +msgstr "" + #: ipalib/plugins/internal.py:44 ipalib/plugins/internal.py:53 msgid "Name of object to export" msgstr "" @@ -5324,1449 +5612,1526 @@ msgstr "" msgid "Add ${entity} ${primary_key} into ${other_entity}" msgstr "" -#: ipalib/plugins/internal.py:167 -msgid "Add Source ${other_entity} into ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:169 +#: ipalib/plugins/internal.py:168 msgid "Items added" msgstr "" -#: ipalib/plugins/internal.py:170 +#: ipalib/plugins/internal.py:169 msgid "Direct Membership" msgstr "" -#: ipalib/plugins/internal.py:171 +#: ipalib/plugins/internal.py:170 msgid "Indirect Membership" msgstr "" -#: ipalib/plugins/internal.py:172 +#: ipalib/plugins/internal.py:171 msgid "No entries." msgstr "" -#: ipalib/plugins/internal.py:173 +#: ipalib/plugins/internal.py:172 msgid "Showing ${start} to ${end} of ${total} entries." msgstr "" -#: ipalib/plugins/internal.py:175 +#: ipalib/plugins/internal.py:174 msgid "Remove RunAs ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:176 +#: ipalib/plugins/internal.py:175 msgid "Remove RunAs Groups from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:177 +#: ipalib/plugins/internal.py:176 msgid "Remove ${other_entity} Managing ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:178 +#: ipalib/plugins/internal.py:177 msgid "Remove ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:179 +#: ipalib/plugins/internal.py:178 msgid "Remove Allow ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:180 +#: ipalib/plugins/internal.py:179 msgid "Remove Deny ${other_entity} from ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:181 +#: ipalib/plugins/internal.py:180 msgid "Remove ${entity} ${primary_key} from ${other_entity}" msgstr "" #: ipalib/plugins/internal.py:182 -msgid "Remove Source ${other_entity} from ${entity} ${primary_key}" -msgstr "" - -#: ipalib/plugins/internal.py:184 msgid "Items removed" msgstr "" -#: ipalib/plugins/internal.py:185 +#: ipalib/plugins/internal.py:183 msgid "Show Results" msgstr "" -#: ipalib/plugins/internal.py:188 +#: ipalib/plugins/internal.py:186 msgid "Add" msgstr "" -#: ipalib/plugins/internal.py:189 +#: ipalib/plugins/internal.py:187 msgid "Add and Add Another" msgstr "" -#: ipalib/plugins/internal.py:190 +#: ipalib/plugins/internal.py:188 msgid "Add and Close" msgstr "" -#: ipalib/plugins/internal.py:191 +#: ipalib/plugins/internal.py:189 msgid "Add and Edit" msgstr "" -#: ipalib/plugins/internal.py:192 +#: ipalib/plugins/internal.py:190 msgid "Add Many" msgstr "" -#: ipalib/plugins/internal.py:193 +#: ipalib/plugins/internal.py:191 msgid "Back" msgstr "" -#: ipalib/plugins/internal.py:194 +#: ipalib/plugins/internal.py:192 msgid "Cancel" msgstr "" -#: ipalib/plugins/internal.py:195 +#: ipalib/plugins/internal.py:193 msgid "Close" msgstr "" -#: ipalib/plugins/internal.py:196 ipalib/plugins/internal.py:640 +#: ipalib/plugins/internal.py:194 ipalib/plugins/internal.py:672 msgid "Disable" msgstr "" -#: ipalib/plugins/internal.py:197 +#: ipalib/plugins/internal.py:195 msgid "Edit" msgstr "" -#: ipalib/plugins/internal.py:198 ipalib/plugins/internal.py:642 +#: ipalib/plugins/internal.py:196 ipalib/plugins/internal.py:674 msgid "Enable" msgstr "" -#: ipalib/plugins/internal.py:199 +#: ipalib/plugins/internal.py:197 msgid "Find" msgstr "" -#: ipalib/plugins/internal.py:200 +#: ipalib/plugins/internal.py:198 msgid "Get" msgstr "" -#: ipalib/plugins/internal.py:201 +#: ipalib/plugins/internal.py:199 msgid "Issue" msgstr "" -#: ipalib/plugins/internal.py:202 +#: ipalib/plugins/internal.py:200 msgid "OK" msgstr "" -#: ipalib/plugins/internal.py:203 +#: ipalib/plugins/internal.py:201 msgid "Refresh" msgstr "" -#: ipalib/plugins/internal.py:204 +#: ipalib/plugins/internal.py:202 msgid "Delete" msgstr "" -#: ipalib/plugins/internal.py:205 +#: ipalib/plugins/internal.py:203 msgid "Reset" msgstr "" -#: ipalib/plugins/internal.py:206 +#: ipalib/plugins/internal.py:204 msgid "Reset Password and Login" msgstr "" -#: ipalib/plugins/internal.py:207 +#: ipalib/plugins/internal.py:205 msgid "Restore" msgstr "" -#: ipalib/plugins/internal.py:208 +#: ipalib/plugins/internal.py:206 msgid "Retry" msgstr "" -#: ipalib/plugins/internal.py:209 +#: ipalib/plugins/internal.py:207 msgid "Revoke" msgstr "" -#: ipalib/plugins/internal.py:210 +#: ipalib/plugins/internal.py:208 msgid "Set" msgstr "" -#: ipalib/plugins/internal.py:211 +#: ipalib/plugins/internal.py:209 msgid "Update" msgstr "" -#: ipalib/plugins/internal.py:212 +#: ipalib/plugins/internal.py:210 msgid "View" msgstr "" -#: ipalib/plugins/internal.py:215 +#: ipalib/plugins/internal.py:213 msgid "Collapse All" msgstr "" -#: ipalib/plugins/internal.py:216 +#: ipalib/plugins/internal.py:214 msgid "Expand All" msgstr "" -#: ipalib/plugins/internal.py:217 +#: ipalib/plugins/internal.py:215 msgid "General" msgstr "" -#: ipalib/plugins/internal.py:218 +#: ipalib/plugins/internal.py:216 msgid "Identity Settings" msgstr "" -#: ipalib/plugins/internal.py:219 +#: ipalib/plugins/internal.py:217 msgid "${entity} ${primary_key} Settings" msgstr "" -#: ipalib/plugins/internal.py:220 +#: ipalib/plugins/internal.py:218 msgid "Back to Top" msgstr "" -#: ipalib/plugins/internal.py:221 +#: ipalib/plugins/internal.py:219 msgid "${entity} ${primary_key} updated" msgstr "" -#: ipalib/plugins/internal.py:224 +#: ipalib/plugins/internal.py:222 msgid "${entity} successfully added" msgstr "" -#: ipalib/plugins/internal.py:225 +#: ipalib/plugins/internal.py:223 msgid "Add ${entity}" msgstr "" -#: ipalib/plugins/internal.py:226 +#: ipalib/plugins/internal.py:224 msgid "Available" msgstr "" -#: ipalib/plugins/internal.py:227 +#: ipalib/plugins/internal.py:225 msgid "Some operations failed." msgstr "" -#: ipalib/plugins/internal.py:228 +#: ipalib/plugins/internal.py:226 msgid "Operations Error" msgstr "" -#: ipalib/plugins/internal.py:229 +#: ipalib/plugins/internal.py:227 msgid "Confirmation" msgstr "" -#: ipalib/plugins/internal.py:230 +#: ipalib/plugins/internal.py:228 msgid "This page has unsaved changes. Please save or revert." msgstr "" -#: ipalib/plugins/internal.py:231 +#: ipalib/plugins/internal.py:229 msgid "Unsaved Changes" msgstr "" -#: ipalib/plugins/internal.py:232 +#: ipalib/plugins/internal.py:230 msgid "Edit ${entity}" msgstr "" -#: ipalib/plugins/internal.py:233 +#: ipalib/plugins/internal.py:231 msgid "Hide details" msgstr "" -#: ipalib/plugins/internal.py:234 +#: ipalib/plugins/internal.py:232 msgid "Prospective" msgstr "" -#: ipalib/plugins/internal.py:235 +#: ipalib/plugins/internal.py:233 msgid "Redirection" msgstr "" -#: ipalib/plugins/internal.py:236 +#: ipalib/plugins/internal.py:234 msgid "Select entries to be removed." msgstr "" -#: ipalib/plugins/internal.py:237 +#: ipalib/plugins/internal.py:235 msgid "Remove ${entity}" msgstr "" -#: ipalib/plugins/internal.py:238 +#: ipalib/plugins/internal.py:236 msgid "Show details" msgstr "" -#: ipalib/plugins/internal.py:239 +#: ipalib/plugins/internal.py:237 msgid "Validation error" msgstr "" -#: ipalib/plugins/internal.py:240 +#: ipalib/plugins/internal.py:238 msgid "Input form contains invalid or missing values." msgstr "" -#: ipalib/plugins/internal.py:243 +#: ipalib/plugins/internal.py:241 msgid "Please try the following options:" msgstr "" -#: ipalib/plugins/internal.py:244 +#: ipalib/plugins/internal.py:242 msgid "If the problem persists please contact the system administrator." msgstr "" -#: ipalib/plugins/internal.py:245 +#: ipalib/plugins/internal.py:243 msgid "Refresh the page." msgstr "" -#: ipalib/plugins/internal.py:246 +#: ipalib/plugins/internal.py:244 msgid "Reload the browser." msgstr "" -#: ipalib/plugins/internal.py:247 +#: ipalib/plugins/internal.py:245 msgid "Return to the main page and retry the operation" msgstr "" -#: ipalib/plugins/internal.py:248 +#: ipalib/plugins/internal.py:246 msgid "An error has occurred (${error})" msgstr "" -#: ipalib/plugins/internal.py:252 +#: ipalib/plugins/internal.py:250 msgid "HTTP Error" msgstr "" -#: ipalib/plugins/internal.py:253 +#: ipalib/plugins/internal.py:251 msgid "Internal Error" msgstr "" -#: ipalib/plugins/internal.py:254 +#: ipalib/plugins/internal.py:252 msgid "IPA Error" msgstr "" -#: ipalib/plugins/internal.py:255 +#: ipalib/plugins/internal.py:253 msgid "No response" msgstr "" -#: ipalib/plugins/internal.py:256 +#: ipalib/plugins/internal.py:254 msgid "Unknown Error" msgstr "" -#: ipalib/plugins/internal.py:257 +#: ipalib/plugins/internal.py:255 msgid "URL" msgstr "" -#: ipalib/plugins/internal.py:260 +#: ipalib/plugins/internal.py:258 msgid "${primary_key} is managed by:" msgstr "" -#: ipalib/plugins/internal.py:261 +#: ipalib/plugins/internal.py:259 msgid "${primary_key} members:" msgstr "" -#: ipalib/plugins/internal.py:262 +#: ipalib/plugins/internal.py:260 msgid "${primary_key} is a member of:" msgstr "" -#: ipalib/plugins/internal.py:265 +#: ipalib/plugins/internal.py:263 msgid "Settings" msgstr "" -#: ipalib/plugins/internal.py:266 +#: ipalib/plugins/internal.py:264 msgid "Search" msgstr "" -#: ipalib/plugins/internal.py:268 +#: ipalib/plugins/internal.py:266 msgid "False" msgstr "" +#: ipalib/plugins/internal.py:268 +msgid "Inherited from server configuration" +msgstr "" + +#: ipalib/plugins/internal.py:269 +msgid "MS-PAC" +msgstr "" + #: ipalib/plugins/internal.py:270 +msgid "Override inherited settings" +msgstr "" + +#: ipalib/plugins/internal.py:271 +msgid "PAD" +msgstr "" + +#: ipalib/plugins/internal.py:274 msgid "" "To login with username and password, enter them in the fields below then " "click Login." msgstr "" -#: ipalib/plugins/internal.py:271 +#: ipalib/plugins/internal.py:275 msgid "Logged In As" msgstr "" -#: ipalib/plugins/internal.py:272 +#: ipalib/plugins/internal.py:276 msgid "" "To login with Kerberos, please make sure you have valid tickets (obtainable " -"via kinit) and <a href='http://${host]/ipa/config/unauthorized." +"via kinit) and <a href='http://${host}/ipa/config/unauthorized." "html'>configured</a> the browser correctly, then click Login." msgstr "" -#: ipalib/plugins/internal.py:273 +#: ipalib/plugins/internal.py:277 msgid "Login" msgstr "" -#: ipalib/plugins/internal.py:274 +#: ipalib/plugins/internal.py:278 msgid "Logout" msgstr "" -#: ipalib/plugins/internal.py:275 +#: ipalib/plugins/internal.py:279 msgid "Logout error" msgstr "" -#: ipalib/plugins/internal.py:280 +#: ipalib/plugins/internal.py:284 msgid "number of passwords" msgstr "" -#: ipalib/plugins/internal.py:281 +#: ipalib/plugins/internal.py:285 msgid "seconds" msgstr "" -#: ipalib/plugins/internal.py:285 ipalib/plugins/internal.py:290 +#: ipalib/plugins/internal.py:289 ipalib/plugins/internal.py:294 msgid "Attribute" msgstr "" -#: ipalib/plugins/internal.py:288 +#: ipalib/plugins/internal.py:292 msgid "Add Condition into ${pkey}" msgstr "" -#: ipalib/plugins/internal.py:289 +#: ipalib/plugins/internal.py:293 msgid "Add Rule" msgstr "" -#: ipalib/plugins/internal.py:291 +#: ipalib/plugins/internal.py:295 msgid "Default host group" msgstr "" -#: ipalib/plugins/internal.py:292 +#: ipalib/plugins/internal.py:296 msgid "Default user group" msgstr "" -#: ipalib/plugins/internal.py:293 +#: ipalib/plugins/internal.py:297 msgid "Exclusive" msgstr "" -#: ipalib/plugins/internal.py:294 +#: ipalib/plugins/internal.py:298 msgid "Expression" msgstr "" -#: ipalib/plugins/internal.py:295 +#: ipalib/plugins/internal.py:299 msgid "Host group rule" msgstr "" -#: ipalib/plugins/internal.py:296 +#: ipalib/plugins/internal.py:300 msgid "Host group rules" msgstr "" -#: ipalib/plugins/internal.py:297 +#: ipalib/plugins/internal.py:301 msgid "Inclusive" msgstr "" -#: ipalib/plugins/internal.py:298 +#: ipalib/plugins/internal.py:302 msgid "User group rule" msgstr "" -#: ipalib/plugins/internal.py:299 +#: ipalib/plugins/internal.py:303 msgid "User group rules" msgstr "" -#: ipalib/plugins/internal.py:304 +#: ipalib/plugins/internal.py:308 msgid "Automount Location Settings" msgstr "" -#: ipalib/plugins/internal.py:307 +#: ipalib/plugins/internal.py:311 msgid "Map Type" msgstr "" -#: ipalib/plugins/internal.py:308 +#: ipalib/plugins/internal.py:312 msgid "Direct" msgstr "" -#: ipalib/plugins/internal.py:309 +#: ipalib/plugins/internal.py:313 msgid "Indirect" msgstr "" -#: ipalib/plugins/internal.py:312 +#: ipalib/plugins/internal.py:316 msgid "AA Compromise" msgstr "" -#: ipalib/plugins/internal.py:313 +#: ipalib/plugins/internal.py:317 msgid "Affiliation Changed" msgstr "" -#: ipalib/plugins/internal.py:314 +#: ipalib/plugins/internal.py:318 msgid "CA Compromise" msgstr "" -#: ipalib/plugins/internal.py:315 +#: ipalib/plugins/internal.py:320 ipalib/plugins/internal.py:416 +#: ipalib/plugins/internal.py:682 +msgid "Certificates" +msgstr "" + +#: ipalib/plugins/internal.py:321 msgid "Certificate Hold" msgstr "" -#: ipalib/plugins/internal.py:316 +#: ipalib/plugins/internal.py:322 msgid "Cessation of Operation" msgstr "" -#: ipalib/plugins/internal.py:317 +#: ipalib/plugins/internal.py:323 msgid "Common Name" msgstr "" -#: ipalib/plugins/internal.py:318 +#: ipalib/plugins/internal.py:324 msgid "Expires On" msgstr "" -#: ipalib/plugins/internal.py:319 +#: ipalib/plugins/internal.py:325 +msgid "Issued on from" +msgstr "" + +#: ipalib/plugins/internal.py:326 +msgid "Issued on to" +msgstr "" + +#: ipalib/plugins/internal.py:327 +msgid "Maximum serial number" +msgstr "" + +#: ipalib/plugins/internal.py:328 +msgid "Minimum serial number" +msgstr "" + +#: ipalib/plugins/internal.py:330 +msgid "Revoked on from" +msgstr "" + +#: ipalib/plugins/internal.py:331 +msgid "Revoked on to" +msgstr "" + +#: ipalib/plugins/internal.py:333 +msgid "Valid not after from" +msgstr "" + +#: ipalib/plugins/internal.py:334 +msgid "Valid not after to" +msgstr "" + +#: ipalib/plugins/internal.py:335 +msgid "Valid not before from" +msgstr "" + +#: ipalib/plugins/internal.py:336 +msgid "Valid not before to" +msgstr "" + +#: ipalib/plugins/internal.py:337 msgid "Fingerprints" msgstr "" -#: ipalib/plugins/internal.py:320 +#: ipalib/plugins/internal.py:338 msgid "Issue New Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:321 +#: ipalib/plugins/internal.py:339 msgid "Issued By" msgstr "" -#: ipalib/plugins/internal.py:322 +#: ipalib/plugins/internal.py:340 msgid "Issued On" msgstr "" -#: ipalib/plugins/internal.py:323 +#: ipalib/plugins/internal.py:341 msgid "Issued To" msgstr "" -#: ipalib/plugins/internal.py:324 +#: ipalib/plugins/internal.py:342 msgid "Key Compromise" msgstr "" -#: ipalib/plugins/internal.py:325 +#: ipalib/plugins/internal.py:343 msgid "MD5 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:326 +#: ipalib/plugins/internal.py:344 msgid "No Valid Certificate" msgstr "" -#: ipalib/plugins/internal.py:327 +#: ipalib/plugins/internal.py:345 msgid "New Certificate" msgstr "" -#: ipalib/plugins/internal.py:328 +#: ipalib/plugins/internal.py:346 msgid "Note" msgstr "" -#: ipalib/plugins/internal.py:329 +#: ipalib/plugins/internal.py:347 msgid "Organization" msgstr "" -#: ipalib/plugins/internal.py:330 +#: ipalib/plugins/internal.py:348 msgid "Organizational Unit" msgstr "" -#: ipalib/plugins/internal.py:331 +#: ipalib/plugins/internal.py:349 msgid "Privilege Withdrawn" msgstr "" -#: ipalib/plugins/internal.py:332 +#: ipalib/plugins/internal.py:350 msgid "Reason for Revocation" msgstr "" -#: ipalib/plugins/internal.py:333 +#: ipalib/plugins/internal.py:351 msgid "Remove from CRL" msgstr "" -#: ipalib/plugins/internal.py:334 +#: ipalib/plugins/internal.py:352 msgid "" -"<ol><li>Examples uses NSS database located in current directory. Replace \"-" -"d .\" in example with \"-d /path/to/database\" if NSS database is located " -"elsewhere. If you don't have a NSS database you can create one in current " -"directory by \"certutil -N -d .\" </li><li>Create a CSR with \"CN=" -"${hostname},O=${realm}\", for example:<br/># certutil -R -d . -a <em title=" -"\"key size in bits\">-g 2048</em> -s 'CN=${hostname},O=${realm}'</" -"li><li>Copy and paste the CSR (the text block which starts with \"-----BEGIN " -"NEW CERTIFICATE REQUEST-----\" and ends with \"-----END NEW CERTIFICATE " -"REQUEST-----\") below:</li></ol>" +"<ol> <li>Create a certificate database or use an existing one. To create a " +"new database:<br/> <code># certutil -N -d <database path></code> </li> " +"<li>Create a CSR with subject <em>CN=<hostname>,O=<realm></em>, " +"for example:<br/> <code># certutil -R -d <database path> -a -g <key " +"size> -s 'CN=${hostname},O=${realm}'</code> </li> <li> Copy and paste the " +"CSR (from <em>-----BEGIN NEW CERTIFICATE REQUEST-----</em> to <em>-----END " +"NEW CERTIFICATE REQUEST-----</em>) into the text area below: </li> </ol>" msgstr "" -#: ipalib/plugins/internal.py:335 +#: ipalib/plugins/internal.py:353 msgid "Certificate requested" msgstr "" -#: ipalib/plugins/internal.py:336 +#: ipalib/plugins/internal.py:354 msgid "Restore Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:337 +#: ipalib/plugins/internal.py:355 +msgid "Restore Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:356 msgid "" "To confirm your intention to restore this certificate, click the \"Restore\" " "button." msgstr "" -#: ipalib/plugins/internal.py:338 +#: ipalib/plugins/internal.py:357 msgid "Certificate restored" msgstr "" -#: ipalib/plugins/internal.py:339 +#: ipalib/plugins/internal.py:359 msgid "Revoke Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:340 +#: ipalib/plugins/internal.py:360 +msgid "Revoke Certificate" +msgstr "" + +#: ipalib/plugins/internal.py:361 msgid "" "To confirm your intention to revoke this certificate, select a reason from " "the pull-down list, and click the \"Revoke\" button." msgstr "" -#: ipalib/plugins/internal.py:341 +#: ipalib/plugins/internal.py:362 msgid "Certificate Revoked" msgstr "" -#: ipalib/plugins/internal.py:344 +#: ipalib/plugins/internal.py:365 msgid "SHA1 Fingerprint" msgstr "" -#: ipalib/plugins/internal.py:345 +#: ipalib/plugins/internal.py:367 msgid "Superseded" msgstr "" -#: ipalib/plugins/internal.py:346 +#: ipalib/plugins/internal.py:368 msgid "Unspecified" msgstr "" -#: ipalib/plugins/internal.py:347 +#: ipalib/plugins/internal.py:369 msgid "Valid Certificate Present" msgstr "" -#: ipalib/plugins/internal.py:348 +#: ipalib/plugins/internal.py:370 msgid "Validity" msgstr "" -#: ipalib/plugins/internal.py:349 +#: ipalib/plugins/internal.py:371 msgid "Certificate for ${entity} ${primary_key}" msgstr "" -#: ipalib/plugins/internal.py:352 +#: ipalib/plugins/internal.py:374 msgid "Group Options" msgstr "" -#: ipalib/plugins/internal.py:353 +#: ipalib/plugins/internal.py:375 msgid "Search Options" msgstr "" -#: ipalib/plugins/internal.py:354 +#: ipalib/plugins/internal.py:376 msgid "SELinux Options" msgstr "" -#: ipalib/plugins/internal.py:355 +#: ipalib/plugins/internal.py:377 msgid "Service Options" msgstr "" -#: ipalib/plugins/internal.py:356 +#: ipalib/plugins/internal.py:378 msgid "User Options" msgstr "" -#: ipalib/plugins/internal.py:361 +#: ipalib/plugins/internal.py:383 msgid "Forward first" msgstr "" -#: ipalib/plugins/internal.py:362 +#: ipalib/plugins/internal.py:384 +msgid "Forwarding disabled" +msgstr "" + +#: ipalib/plugins/internal.py:385 msgid "Forward only" msgstr "" -#: ipalib/plugins/internal.py:363 ipalib/plugins/internal.py:577 +#: ipalib/plugins/internal.py:386 ipalib/plugins/internal.py:605 +#: ipalib/plugins/internal.py:628 msgid "Options" msgstr "" -#: ipalib/plugins/internal.py:366 +#: ipalib/plugins/internal.py:389 msgid "Data" msgstr "" -#: ipalib/plugins/internal.py:367 +#: ipalib/plugins/internal.py:390 msgid "DNS record was deleted because it contained no data." msgstr "" -#: ipalib/plugins/internal.py:368 +#: ipalib/plugins/internal.py:391 msgid "Other Record Types" msgstr "" -#: ipalib/plugins/internal.py:369 +#: ipalib/plugins/internal.py:392 msgid "Address not valid, can't redirect" msgstr "" -#: ipalib/plugins/internal.py:370 +#: ipalib/plugins/internal.py:393 msgid "Create dns record" msgstr "" -#: ipalib/plugins/internal.py:371 +#: ipalib/plugins/internal.py:394 msgid "Creating record." msgstr "" -#: ipalib/plugins/internal.py:372 +#: ipalib/plugins/internal.py:395 msgid "Record creation failed." msgstr "" -#: ipalib/plugins/internal.py:373 +#: ipalib/plugins/internal.py:396 msgid "Checking if record exists." msgstr "" -#: ipalib/plugins/internal.py:374 +#: ipalib/plugins/internal.py:397 msgid "Record not found." msgstr "" -#: ipalib/plugins/internal.py:375 +#: ipalib/plugins/internal.py:398 msgid "Redirection to PTR record" msgstr "" -#: ipalib/plugins/internal.py:376 +#: ipalib/plugins/internal.py:399 msgid "Zone found: ${zone}" msgstr "" -#: ipalib/plugins/internal.py:377 +#: ipalib/plugins/internal.py:400 msgid "Target reverse zone not found." msgstr "" -#: ipalib/plugins/internal.py:378 +#: ipalib/plugins/internal.py:401 msgid "Fetching DNS zones." msgstr "" -#: ipalib/plugins/internal.py:379 +#: ipalib/plugins/internal.py:402 msgid "An error occurred while fetching dns zones." msgstr "" -#: ipalib/plugins/internal.py:380 +#: ipalib/plugins/internal.py:403 msgid "You will be redirected to DNS Zone." msgstr "" -#: ipalib/plugins/internal.py:381 +#: ipalib/plugins/internal.py:404 msgid "Standard Record Types" msgstr "" -#: ipalib/plugins/internal.py:382 +#: ipalib/plugins/internal.py:405 msgid "Records for DNS Zone" msgstr "" -#: ipalib/plugins/internal.py:383 +#: ipalib/plugins/internal.py:406 msgid "Record Type" msgstr "" -#: ipalib/plugins/internal.py:386 +#: ipalib/plugins/internal.py:409 msgid "DNS Zone Settings" msgstr "" -#: ipalib/plugins/internal.py:387 +#: ipalib/plugins/internal.py:410 msgid "Add Permission" msgstr "" -#: ipalib/plugins/internal.py:388 +#: ipalib/plugins/internal.py:411 msgid "Remove Permission" msgstr "" -#: ipalib/plugins/internal.py:391 ipalib/plugins/internal.py:586 +#: ipalib/plugins/internal.py:414 ipalib/plugins/internal.py:614 msgid "Account" msgstr "" -#: ipalib/plugins/internal.py:393 -msgid "Certificates" -msgstr "" - -#: ipalib/plugins/internal.py:394 +#: ipalib/plugins/internal.py:417 msgid "Consume" msgstr "" -#: ipalib/plugins/internal.py:395 +#: ipalib/plugins/internal.py:418 msgid "Consume Entitlement" msgstr "" -#: ipalib/plugins/internal.py:397 +#: ipalib/plugins/internal.py:420 msgid "Download" msgstr "" -#: ipalib/plugins/internal.py:398 +#: ipalib/plugins/internal.py:421 msgid "Download Certificate" msgstr "" -#: ipalib/plugins/internal.py:400 +#: ipalib/plugins/internal.py:423 msgid "Import" msgstr "" -#: ipalib/plugins/internal.py:401 +#: ipalib/plugins/internal.py:424 msgid "Import Certificate" msgstr "" -#: ipalib/plugins/internal.py:402 +#: ipalib/plugins/internal.py:425 msgid "Enter the Base64-encoded entitlement certificate below:" msgstr "" -#: ipalib/plugins/internal.py:403 +#: ipalib/plugins/internal.py:426 msgid "Loading..." msgstr "" -#: ipalib/plugins/internal.py:404 +#: ipalib/plugins/internal.py:427 msgid "No Certificate." msgstr "" -#: ipalib/plugins/internal.py:406 +#: ipalib/plugins/internal.py:429 msgid "Register" msgstr "" -#: ipalib/plugins/internal.py:407 +#: ipalib/plugins/internal.py:430 msgid "Registration" msgstr "" -#: ipalib/plugins/internal.py:409 ipalib/plugins/internal.py:471 -#: ipalib/plugins/internal.py:541 ipalib/plugins/internal.py:644 -msgid "Status" -msgstr "" - -#: ipalib/plugins/internal.py:412 +#: ipalib/plugins/internal.py:435 msgid "Group Settings" msgstr "" -#: ipalib/plugins/internal.py:413 ipalib/plugins/internal.py:486 -#: ipalib/plugins/internal.py:572 +#: ipalib/plugins/internal.py:436 ipalib/plugins/internal.py:508 +#: ipalib/plugins/internal.py:600 msgid "External" msgstr "" -#: ipalib/plugins/internal.py:414 +#: ipalib/plugins/internal.py:437 msgid "Change to external group" msgstr "" -#: ipalib/plugins/internal.py:415 +#: ipalib/plugins/internal.py:438 msgid "Change to POSIX group" msgstr "" -#: ipalib/plugins/internal.py:416 +#: ipalib/plugins/internal.py:439 msgid "Normal" msgstr "" -#: ipalib/plugins/internal.py:417 +#: ipalib/plugins/internal.py:440 msgid "POSIX" msgstr "" -#: ipalib/plugins/internal.py:418 +#: ipalib/plugins/internal.py:441 msgid "Group Type" msgstr "" -#: ipalib/plugins/internal.py:421 ipalib/plugins/internal.py:484 -#: ipalib/plugins/internal.py:526 ipalib/plugins/internal.py:568 +#: ipalib/plugins/internal.py:444 ipalib/plugins/internal.py:506 +#: ipalib/plugins/internal.py:554 ipalib/plugins/internal.py:596 msgid "Any Host" msgstr "" -#: ipalib/plugins/internal.py:422 +#: ipalib/plugins/internal.py:445 msgid "Any Service" msgstr "" -#: ipalib/plugins/internal.py:423 ipalib/plugins/internal.py:485 -#: ipalib/plugins/internal.py:527 ipalib/plugins/internal.py:569 +#: ipalib/plugins/internal.py:446 ipalib/plugins/internal.py:507 +#: ipalib/plugins/internal.py:555 ipalib/plugins/internal.py:597 msgid "Anyone" msgstr "" -#: ipalib/plugins/internal.py:424 +#: ipalib/plugins/internal.py:447 msgid "Accessing" msgstr "" -#: ipalib/plugins/internal.py:425 ipalib/plugins/internal.py:574 +#: ipalib/plugins/internal.py:448 ipalib/plugins/internal.py:602 msgid "Rule status" msgstr "" -#: ipalib/plugins/internal.py:426 +#: ipalib/plugins/internal.py:449 msgid "Via Service" msgstr "" -#: ipalib/plugins/internal.py:427 -msgid "From" -msgstr "" - -#: ipalib/plugins/internal.py:428 ipalib/plugins/internal.py:491 -#: ipalib/plugins/internal.py:529 ipalib/plugins/internal.py:581 +#: ipalib/plugins/internal.py:450 ipalib/plugins/internal.py:513 +#: ipalib/plugins/internal.py:557 ipalib/plugins/internal.py:609 msgid "Specified Hosts and Groups" msgstr "" -#: ipalib/plugins/internal.py:429 +#: ipalib/plugins/internal.py:451 msgid "Specified Services and Groups" msgstr "" -#: ipalib/plugins/internal.py:430 ipalib/plugins/internal.py:492 -#: ipalib/plugins/internal.py:530 ipalib/plugins/internal.py:582 +#: ipalib/plugins/internal.py:452 ipalib/plugins/internal.py:514 +#: ipalib/plugins/internal.py:558 ipalib/plugins/internal.py:610 msgid "Specified Users and Groups" msgstr "" -#: ipalib/plugins/internal.py:431 ipalib/plugins/internal.py:583 +#: ipalib/plugins/internal.py:453 ipalib/plugins/internal.py:611 msgid "Who" msgstr "" -#: ipalib/plugins/internal.py:439 +#: ipalib/plugins/internal.py:461 msgid "Access Denied" msgstr "" -#: ipalib/plugins/internal.py:440 +#: ipalib/plugins/internal.py:462 msgid "Access Granted" msgstr "" -#: ipalib/plugins/internal.py:441 +#: ipalib/plugins/internal.py:463 msgid "Include Disabled" msgstr "" -#: ipalib/plugins/internal.py:442 +#: ipalib/plugins/internal.py:464 msgid "Include Enabled" msgstr "" -#: ipalib/plugins/internal.py:443 +#: ipalib/plugins/internal.py:465 msgid "HBAC Test" msgstr "" -#: ipalib/plugins/internal.py:444 +#: ipalib/plugins/internal.py:466 msgid "Matched" msgstr "" -#: ipalib/plugins/internal.py:445 +#: ipalib/plugins/internal.py:467 msgid "Missing values: " msgstr "" -#: ipalib/plugins/internal.py:446 +#: ipalib/plugins/internal.py:468 msgid "New Test" msgstr "" -#: ipalib/plugins/internal.py:447 +#: ipalib/plugins/internal.py:469 msgid "Rules" msgstr "" -#: ipalib/plugins/internal.py:448 +#: ipalib/plugins/internal.py:470 msgid "Run Test" msgstr "" -#: ipalib/plugins/internal.py:449 +#: ipalib/plugins/internal.py:471 msgid "Specify external ${entity}" msgstr "" -#: ipalib/plugins/internal.py:450 +#: ipalib/plugins/internal.py:472 msgid "Unmatched" msgstr "" -#: ipalib/plugins/internal.py:453 +#: ipalib/plugins/internal.py:475 msgid "Host Certificate" msgstr "" -#: ipalib/plugins/internal.py:454 ipalib/plugins/internal.py:537 +#: ipalib/plugins/internal.py:476 ipalib/plugins/internal.py:565 msgid "Host Name" msgstr "" -#: ipalib/plugins/internal.py:455 ipalib/plugins/internal.py:535 +#: ipalib/plugins/internal.py:477 ipalib/plugins/internal.py:563 msgid "Delete Key, Unprovision" msgstr "" -#: ipalib/plugins/internal.py:456 +#: ipalib/plugins/internal.py:478 msgid "Host Settings" msgstr "" -#: ipalib/plugins/internal.py:457 +#: ipalib/plugins/internal.py:479 msgid "Enrolled" msgstr "" -#: ipalib/plugins/internal.py:458 +#: ipalib/plugins/internal.py:480 msgid "Enrollment" msgstr "" -#: ipalib/plugins/internal.py:459 +#: ipalib/plugins/internal.py:481 msgid "Fully Qualified Host Name" msgstr "" -#: ipalib/plugins/internal.py:460 +#: ipalib/plugins/internal.py:482 msgid "Kerberos Key" msgstr "" -#: ipalib/plugins/internal.py:461 ipalib/plugins/internal.py:538 +#: ipalib/plugins/internal.py:483 ipalib/plugins/internal.py:566 msgid "Kerberos Key Not Present" msgstr "" -#: ipalib/plugins/internal.py:462 +#: ipalib/plugins/internal.py:484 msgid "Kerberos Key Present, Host Provisioned" msgstr "" -#: ipalib/plugins/internal.py:463 +#: ipalib/plugins/internal.py:485 msgid "One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:464 +#: ipalib/plugins/internal.py:486 msgid "One-Time-Password Not Present" msgstr "" -#: ipalib/plugins/internal.py:465 +#: ipalib/plugins/internal.py:487 msgid "One-Time-Password Present" msgstr "" -#: ipalib/plugins/internal.py:466 +#: ipalib/plugins/internal.py:488 msgid "Reset OTP" msgstr "" -#: ipalib/plugins/internal.py:467 +#: ipalib/plugins/internal.py:489 msgid "Reset One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:468 +#: ipalib/plugins/internal.py:490 msgid "Set OTP" msgstr "" -#: ipalib/plugins/internal.py:469 +#: ipalib/plugins/internal.py:491 msgid "OTP set" msgstr "" -#: ipalib/plugins/internal.py:470 +#: ipalib/plugins/internal.py:492 msgid "Set One-Time-Password" msgstr "" -#: ipalib/plugins/internal.py:472 ipalib/plugins/internal.py:542 +#: ipalib/plugins/internal.py:494 ipalib/plugins/internal.py:570 msgid "Unprovision" msgstr "" -#: ipalib/plugins/internal.py:473 +#: ipalib/plugins/internal.py:495 msgid "Are you sure you want to unprovision this host?" msgstr "" -#: ipalib/plugins/internal.py:474 ipalib/plugins/internal.py:544 +#: ipalib/plugins/internal.py:496 ipalib/plugins/internal.py:572 msgid "Unprovisioning ${entity}" msgstr "" -#: ipalib/plugins/internal.py:475 +#: ipalib/plugins/internal.py:497 msgid "Host unprovisioned" msgstr "" -#: ipalib/plugins/internal.py:478 +#: ipalib/plugins/internal.py:500 msgid "Host Group Settings" msgstr "" -#: ipalib/plugins/internal.py:481 ipalib/plugins/krbtpolicy.py:79 +#: ipalib/plugins/internal.py:503 ipalib/plugins/krbtpolicy.py:79 #: ipalib/plugins/krbtpolicy.py:80 msgid "Kerberos Ticket Policy" msgstr "" -#: ipalib/plugins/internal.py:490 +#: ipalib/plugins/internal.py:512 msgid "Netgroup Settings" msgstr "" -#: ipalib/plugins/internal.py:493 ipalib/plugins/internal.py:531 -#: ipalib/plugins/pwpolicy.py:441 ipalib/plugins/user.py:225 +#: ipalib/plugins/internal.py:515 ipalib/plugins/internal.py:559 +#: ipalib/plugins/pwpolicy.py:442 ipalib/plugins/user.py:226 msgid "User" msgstr "" -#: ipalib/plugins/internal.py:498 ipalib/plugins/internal.py:652 +#: ipalib/plugins/internal.py:520 ipalib/plugins/internal.py:685 msgid "Identity" msgstr "" -#: ipalib/plugins/internal.py:499 +#: ipalib/plugins/internal.py:521 msgid "Permission with invalid target specification" msgstr "" -#: ipalib/plugins/internal.py:504 +#: ipalib/plugins/internal.py:526 msgid "Privilege Settings" msgstr "" -#: ipalib/plugins/internal.py:507 ipalib/plugins/pwpolicy.py:223 +#: ipalib/plugins/internal.py:529 ipalib/plugins/pwpolicy.py:223 msgid "Password Policy" msgstr "" -#: ipalib/plugins/internal.py:510 +#: ipalib/plugins/internal.py:532 msgid "Range Settings" msgstr "" -#: ipalib/plugins/internal.py:511 +#: ipalib/plugins/internal.py:533 msgid "Base ID" msgstr "" -#: ipalib/plugins/internal.py:512 +#: ipalib/plugins/internal.py:534 msgid "Primary RID base" msgstr "" -#: ipalib/plugins/internal.py:513 +#: ipalib/plugins/internal.py:535 msgid "Range size" msgstr "" -#: ipalib/plugins/internal.py:514 +#: ipalib/plugins/internal.py:536 msgid "Domain SID" msgstr "" -#: ipalib/plugins/internal.py:515 +#: ipalib/plugins/internal.py:537 msgid "Secondary RID base" msgstr "" -#: ipalib/plugins/internal.py:517 ipalib/plugins/trust.py:115 +#: ipalib/plugins/internal.py:539 ipalib/plugins/trust.py:135 msgid "Active Directory domain" msgstr "" -#: ipalib/plugins/internal.py:518 +#: ipalib/plugins/internal.py:540 msgid "Local domain" msgstr "" -#: ipalib/plugins/internal.py:521 +#: ipalib/plugins/internal.py:543 ipalib/plugins/realmdomains.py:61 +#: ipalib/plugins/realmdomains.py:62 +msgid "Realm Domains" +msgstr "" + +#: ipalib/plugins/internal.py:544 +msgid "Check DNS" +msgstr "" + +#: ipalib/plugins/internal.py:545 +msgid "Do you also want to perform DNS check?" +msgstr "" + +#: ipalib/plugins/internal.py:546 +msgid "Force Update" +msgstr "" + +#: ipalib/plugins/internal.py:549 msgid "Role Settings" msgstr "" -#: ipalib/plugins/internal.py:534 +#: ipalib/plugins/internal.py:562 msgid "Service Certificate" msgstr "" -#: ipalib/plugins/internal.py:536 +#: ipalib/plugins/internal.py:564 msgid "Service Settings" msgstr "" -#: ipalib/plugins/internal.py:539 +#: ipalib/plugins/internal.py:567 msgid "Provisioning" msgstr "" -#: ipalib/plugins/internal.py:543 +#: ipalib/plugins/internal.py:571 msgid "Are you sure you want to unprovision this service?" msgstr "" -#: ipalib/plugins/internal.py:545 +#: ipalib/plugins/internal.py:573 msgid "Service unprovisioned" msgstr "" -#: ipalib/plugins/internal.py:546 +#: ipalib/plugins/internal.py:574 msgid "Kerberos Key Present, Service Provisioned" msgstr "" -#: ipalib/plugins/internal.py:549 +#: ipalib/plugins/internal.py:577 msgid "SSH public keys" msgstr "" -#: ipalib/plugins/internal.py:550 +#: ipalib/plugins/internal.py:578 msgid "SSH public key:" msgstr "" -#: ipalib/plugins/internal.py:551 +#: ipalib/plugins/internal.py:579 msgid "Set SSH key" msgstr "" -#: ipalib/plugins/internal.py:552 +#: ipalib/plugins/internal.py:580 msgid "Show/Set key" msgstr "" -#: ipalib/plugins/internal.py:553 +#: ipalib/plugins/internal.py:581 msgid "Modified: key not set" msgstr "" -#: ipalib/plugins/internal.py:554 +#: ipalib/plugins/internal.py:582 msgid "Modified" msgstr "" -#: ipalib/plugins/internal.py:555 +#: ipalib/plugins/internal.py:583 msgid "New: key not set" msgstr "" -#: ipalib/plugins/internal.py:556 +#: ipalib/plugins/internal.py:584 msgid "New: key set" msgstr "" -#: ipalib/plugins/internal.py:559 +#: ipalib/plugins/internal.py:587 msgid "Groups" msgstr "" -#: ipalib/plugins/internal.py:562 ipalib/plugins/sudocmdgroup.py:82 +#: ipalib/plugins/internal.py:590 ipalib/plugins/sudocmdgroup.py:82 msgid "Commands" msgstr "" -#: ipalib/plugins/internal.py:565 +#: ipalib/plugins/internal.py:593 msgid "Allow" msgstr "" -#: ipalib/plugins/internal.py:566 +#: ipalib/plugins/internal.py:594 msgid "Any Command" msgstr "" -#: ipalib/plugins/internal.py:567 +#: ipalib/plugins/internal.py:595 msgid "Any Group" msgstr "" -#: ipalib/plugins/internal.py:570 +#: ipalib/plugins/internal.py:598 msgid "Run Commands" msgstr "" -#: ipalib/plugins/internal.py:571 +#: ipalib/plugins/internal.py:599 msgid "Deny" msgstr "" -#: ipalib/plugins/internal.py:573 +#: ipalib/plugins/internal.py:601 msgid "Access this host" msgstr "" -#: ipalib/plugins/internal.py:575 +#: ipalib/plugins/internal.py:603 msgid "Option added" msgstr "" -#: ipalib/plugins/internal.py:576 +#: ipalib/plugins/internal.py:604 msgid "Option(s) removed" msgstr "" -#: ipalib/plugins/internal.py:578 +#: ipalib/plugins/internal.py:606 msgid "As Whom" msgstr "" -#: ipalib/plugins/internal.py:579 +#: ipalib/plugins/internal.py:607 msgid "Specified Commands and Groups" msgstr "" -#: ipalib/plugins/internal.py:580 +#: ipalib/plugins/internal.py:608 msgid "Specified Groups" msgstr "" -#: ipalib/plugins/internal.py:587 +#: ipalib/plugins/internal.py:615 msgid "Administrative account" msgstr "" -#: ipalib/plugins/internal.py:588 +#: ipalib/plugins/internal.py:616 +msgid "SID blacklists" +msgstr "" + +#: ipalib/plugins/internal.py:617 msgid "Trust Settings" msgstr "" -#: ipalib/plugins/internal.py:589 +#: ipalib/plugins/internal.py:618 ipalib/plugins/realmdomains.py:68 +#: ipalib/plugins/trust.py:562 msgid "Domain" msgstr "" -#: ipalib/plugins/internal.py:590 +#: ipalib/plugins/internal.py:619 msgid "Establish using" msgstr "" -#: ipalib/plugins/internal.py:591 ipalib/plugins/trust.py:103 +#: ipalib/plugins/internal.py:620 ipalib/plugins/trust.py:202 msgid "Domain NetBIOS name" msgstr "" -#: ipalib/plugins/internal.py:592 ipalib/plugins/trust.py:105 +#: ipalib/plugins/internal.py:621 ipalib/plugins/trust.py:206 msgid "Domain Security Identifier" msgstr "" -#: ipalib/plugins/internal.py:593 +#: ipalib/plugins/internal.py:622 msgid "Pre-shared password" msgstr "" -#: ipalib/plugins/internal.py:594 ipalib/plugins/trust.py:107 +#: ipalib/plugins/internal.py:623 ipalib/plugins/trust.py:127 msgid "Trust direction" msgstr "" -#: ipalib/plugins/internal.py:595 ipalib/plugins/trust.py:111 +#: ipalib/plugins/internal.py:624 ipalib/plugins/trust.py:131 msgid "Trust status" msgstr "" -#: ipalib/plugins/internal.py:596 ipalib/plugins/trust.py:109 +#: ipalib/plugins/internal.py:625 ipalib/plugins/trust.py:129 msgid "Trust type" msgstr "" -#: ipalib/plugins/internal.py:599 +#: ipalib/plugins/internal.py:631 msgid "Account Settings" msgstr "" -#: ipalib/plugins/internal.py:600 +#: ipalib/plugins/internal.py:632 msgid "Account Status" msgstr "" -#: ipalib/plugins/internal.py:601 +#: ipalib/plugins/internal.py:633 msgid "Contact Settings" msgstr "" -#: ipalib/plugins/internal.py:602 +#: ipalib/plugins/internal.py:634 msgid "Employee Information" msgstr "" -#: ipalib/plugins/internal.py:603 +#: ipalib/plugins/internal.py:635 msgid "Error changing account status" msgstr "" -#: ipalib/plugins/internal.py:604 +#: ipalib/plugins/internal.py:636 msgid "Password expiration" msgstr "" -#: ipalib/plugins/internal.py:605 +#: ipalib/plugins/internal.py:637 msgid "Mailing Address" msgstr "" -#: ipalib/plugins/internal.py:606 +#: ipalib/plugins/internal.py:638 msgid "Misc. Information" msgstr "" -#: ipalib/plugins/internal.py:607 +#: ipalib/plugins/internal.py:639 msgid "" "Are you sure you want to ${action} the user?<br/>The change will take effect " "immediately." msgstr "" -#: ipalib/plugins/internal.py:608 +#: ipalib/plugins/internal.py:640 msgid "Click to ${action}" msgstr "" -#: ipalib/plugins/internal.py:612 ipalib/plugins/passwd.py:80 +#: ipalib/plugins/internal.py:644 ipalib/plugins/passwd.py:80 msgid "Current Password" msgstr "" -#: ipalib/plugins/internal.py:613 +#: ipalib/plugins/internal.py:645 msgid "Current password is required" msgstr "" -#: ipalib/plugins/internal.py:614 +#: ipalib/plugins/internal.py:646 msgid "Your password expires in ${days} days." msgstr "" -#: ipalib/plugins/internal.py:615 +#: ipalib/plugins/internal.py:647 msgid "The password or username you entered is incorrect." msgstr "" -#: ipalib/plugins/internal.py:616 ipalib/plugins/passwd.py:77 +#: ipalib/plugins/internal.py:648 ipalib/plugins/passwd.py:77 msgid "New Password" msgstr "" -#: ipalib/plugins/internal.py:617 +#: ipalib/plugins/internal.py:649 msgid "New password is required" msgstr "" -#: ipalib/plugins/internal.py:619 +#: ipalib/plugins/internal.py:651 msgid "Password change complete" msgstr "" -#: ipalib/plugins/internal.py:620 +#: ipalib/plugins/internal.py:652 msgid "Passwords must match" msgstr "" -#: ipalib/plugins/internal.py:621 +#: ipalib/plugins/internal.py:653 msgid "Password reset was not successful." msgstr "" -#: ipalib/plugins/internal.py:622 +#: ipalib/plugins/internal.py:654 msgid "Reset Password" msgstr "" -#: ipalib/plugins/internal.py:623 +#: ipalib/plugins/internal.py:655 msgid "Reset your password." msgstr "" -#: ipalib/plugins/internal.py:624 +#: ipalib/plugins/internal.py:656 msgid "Verify Password" msgstr "" -#: ipalib/plugins/internal.py:627 +#: ipalib/plugins/internal.py:659 msgid "Are you sure you want to delete selected entries?" msgstr "" -#: ipalib/plugins/internal.py:628 +#: ipalib/plugins/internal.py:660 msgid "Selected entries were deleted." msgstr "" -#: ipalib/plugins/internal.py:629 +#: ipalib/plugins/internal.py:661 msgid "Are you sure you want to disable selected entries?" msgstr "" -#: ipalib/plugins/internal.py:630 +#: ipalib/plugins/internal.py:662 msgid "${count} items were disabled" msgstr "" -#: ipalib/plugins/internal.py:631 +#: ipalib/plugins/internal.py:663 msgid "Are you sure you want to enable selected entries?" msgstr "" -#: ipalib/plugins/internal.py:632 +#: ipalib/plugins/internal.py:664 msgid "${count} items were enabled" msgstr "" -#: ipalib/plugins/internal.py:633 +#: ipalib/plugins/internal.py:665 msgid "Some entries were not deleted" msgstr "" -#: ipalib/plugins/internal.py:634 +#: ipalib/plugins/internal.py:666 msgid "Quick Links" msgstr "" -#: ipalib/plugins/internal.py:635 +#: ipalib/plugins/internal.py:667 msgid "Select All" msgstr "" -#: ipalib/plugins/internal.py:636 +#: ipalib/plugins/internal.py:668 msgid "" "Query returned more results than the configured size limit. Displaying the " "first ${counter} results." msgstr "" -#: ipalib/plugins/internal.py:637 +#: ipalib/plugins/internal.py:669 msgid "Unselect All" msgstr "" -#: ipalib/plugins/internal.py:641 +#: ipalib/plugins/internal.py:673 msgid "Disabled" msgstr "" -#: ipalib/plugins/internal.py:647 +#: ipalib/plugins/internal.py:679 msgid "Audit" msgstr "" -#: ipalib/plugins/internal.py:648 +#: ipalib/plugins/internal.py:680 msgid "Automember" msgstr "" -#: ipalib/plugins/internal.py:649 +#: ipalib/plugins/internal.py:681 msgid "Automount" msgstr "" -#: ipalib/plugins/internal.py:650 +#: ipalib/plugins/internal.py:683 msgid "DNS" msgstr "" -#: ipalib/plugins/internal.py:651 +#: ipalib/plugins/internal.py:684 msgid "Host Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:653 +#: ipalib/plugins/internal.py:686 msgid "IPA Server" msgstr "" -#: ipalib/plugins/internal.py:654 +#: ipalib/plugins/internal.py:687 msgid "Policy" msgstr "" -#: ipalib/plugins/internal.py:655 +#: ipalib/plugins/internal.py:688 msgid "Role Based Access Control" msgstr "" -#: ipalib/plugins/internal.py:656 +#: ipalib/plugins/internal.py:689 msgid "Sudo" msgstr "" -#: ipalib/plugins/internal.py:658 +#: ipalib/plugins/internal.py:690 ipalib/plugins/trust.py:191 +msgid "Trusts" +msgstr "" + +#: ipalib/plugins/internal.py:692 msgid "True" msgstr "" -#: ipalib/plugins/internal.py:660 +#: ipalib/plugins/internal.py:694 msgid "Next" msgstr "" -#: ipalib/plugins/internal.py:661 +#: ipalib/plugins/internal.py:695 msgid "Page" msgstr "" -#: ipalib/plugins/internal.py:662 +#: ipalib/plugins/internal.py:696 msgid "Prev" msgstr "" -#: ipalib/plugins/internal.py:663 +#: ipalib/plugins/internal.py:697 msgid "undo" msgstr "" -#: ipalib/plugins/internal.py:664 +#: ipalib/plugins/internal.py:698 msgid "undo all" msgstr "" -#: ipalib/plugins/internal.py:666 +#: ipalib/plugins/internal.py:700 msgid "Text does not match field pattern" msgstr "" -#: ipalib/plugins/internal.py:667 +#: ipalib/plugins/internal.py:701 msgid "Must be a decimal number" msgstr "" -#: ipalib/plugins/internal.py:668 +#: ipalib/plugins/internal.py:702 msgid "Must be an integer" msgstr "" -#: ipalib/plugins/internal.py:669 +#: ipalib/plugins/internal.py:703 msgid "Not a valid IP address" msgstr "" -#: ipalib/plugins/internal.py:670 +#: ipalib/plugins/internal.py:704 msgid "Not a valid IPv4 address" msgstr "" -#: ipalib/plugins/internal.py:671 +#: ipalib/plugins/internal.py:705 msgid "Not a valid IPv6 address" msgstr "" -#: ipalib/plugins/internal.py:672 +#: ipalib/plugins/internal.py:706 msgid "Maximum value is ${value}" msgstr "" -#: ipalib/plugins/internal.py:673 +#: ipalib/plugins/internal.py:707 msgid "Minimum value is ${value}" msgstr "" -#: ipalib/plugins/internal.py:674 +#: ipalib/plugins/internal.py:708 msgid "Not a valid network address" msgstr "" -#: ipalib/plugins/internal.py:675 +#: ipalib/plugins/internal.py:709 msgid "'${port}' is not a valid port" msgstr "" -#: ipalib/plugins/internal.py:676 +#: ipalib/plugins/internal.py:710 msgid "Required field" msgstr "" -#: ipalib/plugins/internal.py:677 +#: ipalib/plugins/internal.py:711 msgid "Unsupported value" msgstr "" -#: ipalib/plugins/internal.py:682 +#: ipalib/plugins/internal.py:716 msgid "Dict of I18N messages" msgstr "" @@ -6888,6 +7253,12 @@ msgid "" "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" @@ -6920,210 +7291,228 @@ msgid "" " --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 "" -#: ipalib/plugins/migration.py:109 +#: ipalib/plugins/migration.py:130 #, python-format msgid "" "Kerberos principal %s already exists. Use 'ipa user-mod' to set it manually." msgstr "" -#: ipalib/plugins/migration.py:110 +#: ipalib/plugins/migration.py:131 +#, python-format +msgid "" +"Unable to determine if Kerberos principal %s already exists. Use 'ipa user-" +"mod' to set it manually." +msgstr "" + +#: ipalib/plugins/migration.py:132 msgid "" "Failed to add user to the default group. Use 'ipa group-add-member' to add " "manually." msgstr "" -#: ipalib/plugins/migration.py:111 +#: ipalib/plugins/migration.py:133 msgid "Migration of LDAP search reference is not supported." msgstr "" -#: ipalib/plugins/migration.py:112 +#: ipalib/plugins/migration.py:134 msgid "Malformed DN" msgstr "" -#: ipalib/plugins/migration.py:128 +#: ipalib/plugins/migration.py:151 #, python-format msgid "%(user)s is not a POSIX user" msgstr "" -#: ipalib/plugins/migration.py:334 +#: ipalib/plugins/migration.py:418 msgid "" ". Check GID of the existing group. Use --group-overwrite-gid option to " "overwrite the GID" msgstr "" -#: ipalib/plugins/migration.py:349 +#: ipalib/plugins/migration.py:433 msgid "Invalid LDAP URI." msgstr "" -#: ipalib/plugins/migration.py:354 +#: ipalib/plugins/migration.py:438 msgid "Migrate users and groups from DS to IPA." msgstr "" -#: ipalib/plugins/migration.py:401 +#: ipalib/plugins/migration.py:485 msgid "LDAP URI" msgstr "" -#: ipalib/plugins/migration.py:402 +#: ipalib/plugins/migration.py:486 msgid "LDAP URI of DS server to migrate from" msgstr "" -#: ipalib/plugins/migration.py:408 +#: ipalib/plugins/migration.py:492 msgid "bind password" msgstr "" -#: ipalib/plugins/migration.py:415 +#: ipalib/plugins/migration.py:499 msgid "Bind DN" msgstr "" -#: ipalib/plugins/migration.py:421 +#: ipalib/plugins/migration.py:505 msgid "User container" msgstr "" -#: ipalib/plugins/migration.py:422 +#: ipalib/plugins/migration.py:506 msgid "DN of container for users in DS relative to base DN" msgstr "" -#: ipalib/plugins/migration.py:428 +#: ipalib/plugins/migration.py:512 msgid "Group container" msgstr "" -#: ipalib/plugins/migration.py:429 +#: ipalib/plugins/migration.py:513 msgid "DN of container for groups in DS relative to base DN" msgstr "" -#: ipalib/plugins/migration.py:435 +#: ipalib/plugins/migration.py:519 msgid "User object class" msgstr "" -#: ipalib/plugins/migration.py:436 -msgid "" -"Comma-separated list of objectclasses used to search for user entries in DS" +#: ipalib/plugins/migration.py:520 +msgid "Objectclasses used to search for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:443 +#: ipalib/plugins/migration.py:527 msgid "Group object class" msgstr "" -#: ipalib/plugins/migration.py:444 -msgid "" -"Comma-separated list of objectclasses used to search for group entries in DS" +#: ipalib/plugins/migration.py:528 +msgid "Objectclasses used to search for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:451 +#: ipalib/plugins/migration.py:535 msgid "Ignore user object class" msgstr "" -#: ipalib/plugins/migration.py:452 -msgid "" -"Comma-separated list of objectclasses to be ignored for user entries in DS" +#: ipalib/plugins/migration.py:536 +msgid "Objectclasses to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:459 +#: ipalib/plugins/migration.py:543 msgid "Ignore user attribute" msgstr "" -#: ipalib/plugins/migration.py:460 -msgid "Comma-separated list of attributes to be ignored for user entries in DS" +#: ipalib/plugins/migration.py:544 +msgid "Attributes to be ignored for user entries in DS" msgstr "" -#: ipalib/plugins/migration.py:467 +#: ipalib/plugins/migration.py:551 msgid "Ignore group object class" msgstr "" -#: ipalib/plugins/migration.py:468 -msgid "" -"Comma-separated list of objectclasses to be ignored for group entries in DS" +#: ipalib/plugins/migration.py:552 +msgid "Objectclasses to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:475 +#: ipalib/plugins/migration.py:559 msgid "Ignore group attribute" msgstr "" -#: ipalib/plugins/migration.py:476 -msgid "" -"Comma-separated list of attributes to be ignored for group entries in DS" +#: ipalib/plugins/migration.py:560 +msgid "Attributes to be ignored for group entries in DS" msgstr "" -#: ipalib/plugins/migration.py:483 +#: ipalib/plugins/migration.py:567 msgid "Overwrite GID" msgstr "" -#: ipalib/plugins/migration.py:484 +#: ipalib/plugins/migration.py:568 msgid "" "When migrating a group already existing in IPA domain overwrite the group " "GID and report as success" msgstr "" -#: ipalib/plugins/migration.py:489 +#: ipalib/plugins/migration.py:573 msgid "LDAP schema" msgstr "" -#: ipalib/plugins/migration.py:490 +#: ipalib/plugins/migration.py:574 msgid "" "The schema used on the LDAP server. Supported values are RFC2307 and " "RFC2307bis. The default is RFC2307bis" msgstr "" -#: ipalib/plugins/migration.py:496 +#: ipalib/plugins/migration.py:580 msgid "Continue" msgstr "" -#: ipalib/plugins/migration.py:497 +#: ipalib/plugins/migration.py:581 msgid "" "Continuous operation mode. Errors are reported but the process continues" msgstr "" -#: ipalib/plugins/migration.py:502 +#: ipalib/plugins/migration.py:586 msgid "Base DN" msgstr "" -#: ipalib/plugins/migration.py:503 +#: ipalib/plugins/migration.py:587 msgid "Base DN on remote LDAP server" msgstr "" -#: ipalib/plugins/migration.py:507 +#: ipalib/plugins/migration.py:591 msgid "Ignore compat plugin" msgstr "" -#: ipalib/plugins/migration.py:508 +#: ipalib/plugins/migration.py:592 msgid "Allows migration despite the usage of compat plugin" msgstr "" -#: ipalib/plugins/migration.py:516 +#: ipalib/plugins/migration.py:600 msgid "Lists of objects migrated; categorized by type." msgstr "" -#: ipalib/plugins/migration.py:520 +#: ipalib/plugins/migration.py:604 msgid "Lists of objects that could not be migrated; categorized by type." msgstr "" -#: ipalib/plugins/migration.py:524 +#: ipalib/plugins/migration.py:608 msgid "False if migration mode was disabled." msgstr "" -#: ipalib/plugins/migration.py:528 +#: ipalib/plugins/migration.py:612 msgid "False if migration fails because the compatibility plug-in is enabled." msgstr "" -#: ipalib/plugins/migration.py:532 +#: ipalib/plugins/migration.py:616 #, python-format -msgid "comma-separated list of %s to exclude from migration" +msgid "%s to exclude from migration" msgstr "" -#: ipalib/plugins/migration.py:534 +#: ipalib/plugins/migration.py:618 msgid "" "search results for objects to be migrated\n" "have been truncated by the server;\n" "migration process might be incomplete\n" msgstr "" -#: ipalib/plugins/migration.py:539 +#: ipalib/plugins/migration.py:623 msgid "Migration mode is disabled. Use 'ipa config-mod' to enable it." msgstr "" -#: ipalib/plugins/migration.py:542 +#: ipalib/plugins/migration.py:626 msgid "" "Passwords have been migrated in pre-hashed format.\n" "IPA is unable to generate Kerberos keys unless provided\n" @@ -7132,14 +7521,14 @@ msgid "" "can use their Kerberos accounts." msgstr "" -#: ipalib/plugins/migration.py:627 +#: ipalib/plugins/migration.py:712 #, python-format msgid "" "%(container)s LDAP search did not return any result (search base: " "%(search_base)s, objectclass: %(objectclass)s)" msgstr "" -#: ipalib/plugins/migration.py:659 ipalib/plugins/user.py:509 +#: ipalib/plugins/migration.py:744 ipalib/plugins/user.py:519 msgid "Default group for new users not found" msgstr "" @@ -7200,7 +7589,7 @@ msgid "" " ipa netgroup-add --desc=\"NFS admins\" admins\n" "\n" " Add members to the netgroup:\n" -" ipa netgroup-add-member --users=tuser1,tuser2 admins\n" +" ipa netgroup-add-member --users=tuser1 --users=tuser2 admins\n" "\n" " Remove a member from the netgroup:\n" " ipa netgroup-remove-member --users=tuser2 admins\n" @@ -7413,99 +7802,98 @@ msgstr "" msgid "permissions" msgstr "" -#: ipalib/plugins/permission.py:127 +#: ipalib/plugins/permission.py:128 msgid "Permission name" msgstr "" -#: ipalib/plugins/permission.py:135 -msgid "" -"Comma-separated list of permissions to grant (read, write, add, delete, all)" +#: ipalib/plugins/permission.py:136 +msgid "Permissions to grant (read, write, add, delete, all)" msgstr "" -#: ipalib/plugins/permission.py:150 +#: ipalib/plugins/permission.py:151 msgid "" "Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)" msgstr "" -#: ipalib/plugins/permission.py:156 +#: ipalib/plugins/permission.py:157 msgid "Member of group" msgstr "" -#: ipalib/plugins/permission.py:157 +#: ipalib/plugins/permission.py:158 msgid "Target members of a group" msgstr "" -#: ipalib/plugins/permission.py:169 +#: ipalib/plugins/permission.py:170 msgid "Subtree to apply permissions to" msgstr "" -#: ipalib/plugins/permission.py:175 +#: ipalib/plugins/permission.py:176 msgid "User group to apply permissions to" msgstr "" -#: ipalib/plugins/permission.py:200 +#: ipalib/plugins/permission.py:201 msgid "Add a new permission." msgstr "" -#: ipalib/plugins/permission.py:202 ipalib/plugins/permission.py:258 +#: ipalib/plugins/permission.py:203 ipalib/plugins/permission.py:259 #, python-format msgid "Added permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:256 +#: ipalib/plugins/permission.py:257 msgid "Add a system permission without an ACI" msgstr "" -#: ipalib/plugins/permission.py:264 +#: ipalib/plugins/permission.py:265 msgid "Permission type" msgstr "" -#: ipalib/plugins/permission.py:291 +#: ipalib/plugins/permission.py:292 msgid "Delete a permission." msgstr "" -#: ipalib/plugins/permission.py:293 +#: ipalib/plugins/permission.py:294 #, python-format msgid "Deleted permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:299 +#: ipalib/plugins/permission.py:300 msgid "force delete of SYSTEM permissions" msgstr "" -#: ipalib/plugins/permission.py:307 +#: ipalib/plugins/permission.py:308 msgid "A SYSTEM permission may not be removed" msgstr "" -#: ipalib/plugins/permission.py:319 +#: ipalib/plugins/permission.py:320 msgid "Modify a permission." msgstr "" -#: ipalib/plugins/permission.py:321 +#: ipalib/plugins/permission.py:322 #, python-format msgid "Modified permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/permission.py:328 +#: ipalib/plugins/permission.py:329 msgid "A SYSTEM permission may not be modified" msgstr "" -#: ipalib/plugins/permission.py:355 +#: ipalib/plugins/permission.py:354 msgid "New name can not be empty" msgstr "" -#: ipalib/plugins/permission.py:411 +#: ipalib/plugins/permission.py:410 msgid "Search for permissions." msgstr "" -#: ipalib/plugins/permission.py:414 +#: ipalib/plugins/permission.py:413 #, python-format msgid "%(count)d permission matched" msgid_plural "%(count)d permissions matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/permission.py:493 +#: ipalib/plugins/permission.py:492 msgid "Display information about a permission." msgstr "" @@ -7831,42 +8219,109 @@ msgstr "" msgid "Priority of the policy (higher number means lower priority" msgstr "" -#: ipalib/plugins/pwpolicy.py:319 +#: ipalib/plugins/pwpolicy.py:320 msgid "Maximum password life must be greater than minimum." msgstr "" -#: ipalib/plugins/pwpolicy.py:338 +#: ipalib/plugins/pwpolicy.py:339 msgid "Add a new group password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:365 +#: ipalib/plugins/pwpolicy.py:366 msgid "Delete a group password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:377 +#: ipalib/plugins/pwpolicy.py:378 msgid "cannot delete global password policy" msgstr "" -#: ipalib/plugins/pwpolicy.py:393 +#: ipalib/plugins/pwpolicy.py:394 msgid "Modify a group password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:404 +#: ipalib/plugins/pwpolicy.py:405 msgid "priority cannot be set on global policy" msgstr "" -#: ipalib/plugins/pwpolicy.py:437 +#: ipalib/plugins/pwpolicy.py:438 msgid "Display information about password policy." msgstr "" -#: ipalib/plugins/pwpolicy.py:442 +#: ipalib/plugins/pwpolicy.py:443 msgid "Display effective policy for a specific user" msgstr "" -#: ipalib/plugins/pwpolicy.py:467 +#: ipalib/plugins/pwpolicy.py:468 msgid "Search for group password policies." msgstr "" +#: ipalib/plugins/realmdomains.py:30 +msgid "" +"\n" +"Realm domains\n" +"\n" +"Manage the list of domains associated with IPA realm.\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 "" + +#: ipalib/plugins/realmdomains.py:57 +msgid "Realm domains" +msgstr "" + +#: ipalib/plugins/realmdomains.py:73 +msgid "Add domain" +msgstr "" + +#: ipalib/plugins/realmdomains.py:78 +msgid "Delete domain" +msgstr "" + +#: ipalib/plugins/realmdomains.py:86 +msgid "Modify realm domains." +msgstr "" + +#: ipalib/plugins/realmdomains.py:91 +msgid "Force adding domain even if not in DNS" +msgstr "" + +#: ipalib/plugins/realmdomains.py:104 +msgid "" +"you cannot specify the --domain option together with --add-domain or --del-" +"domain" +msgstr "" + +#: ipalib/plugins/realmdomains.py:106 ipalib/plugins/realmdomains.py:126 +msgid "cannot delete domain of IPA server" +msgstr "" + +#: ipalib/plugins/realmdomains.py:111 +#, python-format +msgid "no SOA or NS records found for domains: %s" +msgstr "" + +#: ipalib/plugins/realmdomains.py:120 +#, python-format +msgid "no SOA or NS records found for domain %s" +msgstr "" + +#: ipalib/plugins/realmdomains.py:140 +msgid "Display the list of realm domains." +msgstr "" + #: ipalib/plugins/role.py:26 msgid "" "\n" @@ -8007,13 +8462,15 @@ msgid "" "\n" "EXAMPLES:\n" "\n" -" Add a self-service rule to allow users to manage their address:\n" -" ipa selfservice-add --permissions=write --attrs=street,postalCode,l,c,st " -"\"Users manage their own address\"\n" +" Add a self-service rule to allow users to manage their address (using Bash\n" +" brace expansion):\n" +" ipa selfservice-add --permissions=write --attrs={street,postalCode,l,c," +"st} \"Users manage their own address\"\n" "\n" " When managing the list of attributes you need to include all attributes\n" -" in the list, including existing ones. Add telephoneNumber to the list:\n" -" ipa selfservice-mod --attrs=street,postalCode,l,c,st,telephoneNumber " +" in the list, including existing ones.\n" +" Add telephoneNumber to the list (using Bash brace expansion):\n" +" ipa selfservice-mod --attrs={street,postalCode,l,c,st,telephoneNumber} " "\"Users manage their own address\"\n" "\n" " Display our updated rule:\n" @@ -8023,65 +8480,69 @@ msgid "" " ipa selfservice-del \"Users manage their own address\"\n" msgstr "" -#: ipalib/plugins/selfservice.py:69 +#: ipalib/plugins/selfservice.py:71 msgid "self service permission" msgstr "" -#: ipalib/plugins/selfservice.py:70 +#: ipalib/plugins/selfservice.py:72 msgid "self service permissions" msgstr "" -#: ipalib/plugins/selfservice.py:71 +#: ipalib/plugins/selfservice.py:73 msgid "Self Service Permissions" msgstr "" -#: ipalib/plugins/selfservice.py:72 +#: ipalib/plugins/selfservice.py:74 msgid "Self Service Permission" msgstr "" -#: ipalib/plugins/selfservice.py:77 ipalib/plugins/selfservice.py:78 +#: ipalib/plugins/selfservice.py:79 ipalib/plugins/selfservice.py:80 msgid "Self-service name" msgstr "" -#: ipalib/plugins/selfservice.py:122 +#: ipalib/plugins/selfservice.py:94 +msgid "Attributes to which the permission applies." +msgstr "" + +#: ipalib/plugins/selfservice.py:123 msgid "Add a new self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:124 +#: ipalib/plugins/selfservice.py:125 #, python-format msgid "Added selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:144 +#: ipalib/plugins/selfservice.py:145 msgid "Delete a self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:147 +#: ipalib/plugins/selfservice.py:148 #, python-format msgid "Deleted selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:162 +#: ipalib/plugins/selfservice.py:163 msgid "Modify a self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:164 +#: ipalib/plugins/selfservice.py:165 #, python-format msgid "Modified selfservice \"%(value)s\"" msgstr "" -#: ipalib/plugins/selfservice.py:184 +#: ipalib/plugins/selfservice.py:185 msgid "Search for a self-service permission." msgstr "" -#: ipalib/plugins/selfservice.py:187 +#: ipalib/plugins/selfservice.py:188 #, python-format msgid "%(count)d selfservice matched" msgid_plural "%(count)d selfservices matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selfservice.py:211 +#: ipalib/plugins/selfservice.py:212 msgid "Display information about a self-service permission." msgstr "" @@ -8303,6 +8764,12 @@ msgid "" " 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" @@ -8324,112 +8791,128 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/service.py:132 +#: ipalib/plugins/service.py:133 +msgid "Requires pre-authentication" +msgstr "" + +#: ipalib/plugins/service.py:134 +msgid "Pre-authentication is required for the service" +msgstr "" + +#: ipalib/plugins/service.py:139 +msgid "Trusted for delegation" +msgstr "" + +#: ipalib/plugins/service.py:140 +msgid "Client credentials may be delegated to the service" +msgstr "" + +#: ipalib/plugins/service.py:159 msgid "missing service" msgstr "" -#: ipalib/plugins/service.py:136 +#: ipalib/plugins/service.py:163 msgid "blank service" msgstr "" -#: ipalib/plugins/service.py:140 +#: ipalib/plugins/service.py:167 msgid "unable to determine realm" msgstr "" -#: ipalib/plugins/service.py:213 +#: ipalib/plugins/service.py:240 msgid "This principal is required by the IPA master" msgstr "" -#: ipalib/plugins/service.py:220 +#: ipalib/plugins/service.py:295 msgid "service" msgstr "" -#: ipalib/plugins/service.py:221 +#: ipalib/plugins/service.py:296 msgid "services" msgstr "" -#: ipalib/plugins/service.py:247 +#: ipalib/plugins/service.py:322 msgid "Service principal" msgstr "" -#: ipalib/plugins/service.py:259 +#: ipalib/plugins/service.py:334 msgid "PAC type" msgstr "" -#: ipalib/plugins/service.py:260 +#: ipalib/plugins/service.py:335 msgid "" "Override default list of supported PAC types. Use 'NONE' to disable PAC " -"support for this service" +"support for this service, e.g. this might be necessary for NFS services." msgstr "" -#: ipalib/plugins/service.py:280 +#: ipalib/plugins/service.py:356 msgid "NONE value cannot be combined with other PAC types" msgstr "" -#: ipalib/plugins/service.py:286 +#: ipalib/plugins/service.py:362 msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/service.py:288 +#: ipalib/plugins/service.py:364 #, python-format msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:294 +#: ipalib/plugins/service.py:370 msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/service.py:307 +#: ipalib/plugins/service.py:384 #, python-format msgid "The host '%s' does not exist to add a service to." msgstr "" -#: ipalib/plugins/service.py:341 +#: ipalib/plugins/service.py:424 msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/service.py:343 +#: ipalib/plugins/service.py:426 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:386 +#: ipalib/plugins/service.py:469 msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/service.py:388 +#: ipalib/plugins/service.py:471 #, python-format msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:430 +#: ipalib/plugins/service.py:517 msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/service.py:433 +#: ipalib/plugins/service.py:520 #, python-format msgid "%(count)d service matched" msgid_plural "%(count)d services matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:467 +#: ipalib/plugins/service.py:555 msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/service.py:501 +#: ipalib/plugins/service.py:590 msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:510 +#: ipalib/plugins/service.py:599 msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:519 +#: ipalib/plugins/service.py:608 msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/service.py:522 +#: ipalib/plugins/service.py:611 #, python-format msgid "Disabled service \"%(value)s\"" msgstr "" @@ -8463,57 +8946,57 @@ msgstr "" msgid "sudo commands" msgstr "" -#: ipalib/plugins/sudocmd.py:65 +#: ipalib/plugins/sudocmd.py:66 msgid "Sudo Commands" msgstr "" -#: ipalib/plugins/sudocmd.py:66 ipalib/plugins/sudocmd.py:71 +#: ipalib/plugins/sudocmd.py:67 ipalib/plugins/sudocmd.py:72 msgid "Sudo Command" msgstr "" -#: ipalib/plugins/sudocmd.py:77 +#: ipalib/plugins/sudocmd.py:78 msgid "A description of this command" msgstr "" -#: ipalib/plugins/sudocmd.py:100 +#: ipalib/plugins/sudocmd.py:101 msgid "Create new Sudo Command." msgstr "" -#: ipalib/plugins/sudocmd.py:102 +#: ipalib/plugins/sudocmd.py:103 #, python-format msgid "Added Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:107 +#: ipalib/plugins/sudocmd.py:108 msgid "Delete Sudo Command." msgstr "" -#: ipalib/plugins/sudocmd.py:109 +#: ipalib/plugins/sudocmd.py:110 #, python-format msgid "Deleted Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:114 +#: ipalib/plugins/sudocmd.py:141 msgid "Modify Sudo Command." msgstr "" -#: ipalib/plugins/sudocmd.py:116 +#: ipalib/plugins/sudocmd.py:143 #, python-format msgid "Modified Sudo Command \"%(value)s\"" msgstr "" -#: ipalib/plugins/sudocmd.py:121 +#: ipalib/plugins/sudocmd.py:148 msgid "Search for Sudo Commands." msgstr "" -#: ipalib/plugins/sudocmd.py:124 +#: ipalib/plugins/sudocmd.py:151 #, python-format msgid "%(count)d Sudo Command matched" msgid_plural "%(count)d Sudo Commands matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/sudocmd.py:130 +#: ipalib/plugins/sudocmd.py:157 msgid "Display Sudo Command." msgstr "" @@ -8533,8 +9016,8 @@ msgid "" " ipa sudocmdgroup-del admincmds\n" "\n" " Manage Sudo Command Group membership, commands:\n" -" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less,/usr/bin/vim " -"admincmds\n" +" ipa sudocmdgroup-add-member --sudocmds=/usr/bin/less --sudocmds=/usr/bin/" +"vim admincmds\n" "\n" " Manage Sudo Command Group membership, commands:\n" " ipa group-remove-member --sudocmds=/usr/bin/less admincmds\n" @@ -8753,8 +9236,8 @@ msgstr "" msgid "External Group the commands can run as (sudorule-find only)" msgstr "" -#: ipalib/plugins/sudorule.py:212 ipalib/plugins/sudorule.py:611 -#: ipalib/plugins/sudorule.py:663 +#: ipalib/plugins/sudorule.py:212 ipalib/plugins/sudorule.py:612 +#: ipalib/plugins/sudorule.py:665 msgid "Sudo Option" msgstr "" @@ -8912,21 +9395,21 @@ msgstr "" msgid "Add an option to the Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:648 +#: ipalib/plugins/sudorule.py:649 #, python-format msgid "Added option \"%(option)s\" to Sudo Rule \"%(rule)s\"" msgstr "" -#: ipalib/plugins/sudorule.py:658 +#: ipalib/plugins/sudorule.py:659 msgid "Remove an option from Sudo Rule." msgstr "" -#: ipalib/plugins/sudorule.py:703 +#: ipalib/plugins/sudorule.py:705 #, python-format msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" msgstr "" -#: ipalib/plugins/trust.py:41 +#: ipalib/plugins/trust.py:42 msgid "" "\n" "Cross-realm trusts\n" @@ -8973,241 +9456,275 @@ msgid "" "\n" "Example:\n" "\n" -"1. Make note of the trusted domain security identifier\n" -"\n" -" domainsid = `ipa trust-show <ad.domain> | grep Identifier | cut -d: -f2`\n" -"\n" -"2. Create group for the trusted domain admins' mapping and their local POSIX " +"1. Create group for the trusted domain admins' mapping and their local POSIX " "group:\n" "\n" " ipa group-add --desc='<ad.domain> admins external map' ad_admins_external " "--external\n" " ipa group-add --desc='<ad.domain> admins' ad_admins\n" "\n" -"3. Add security identifier of Domain Admins of the <ad.domain> to the " +"2. Add security identifier of Domain Admins of the <ad.domain> to the " "ad_admins_external\n" -" group (security identifier of <ad.domain SID>-512 is Domain Admins " -"group):\n" +" group:\n" "\n" -" ipa group-add-member ad_admins_external --external ${domainsid}-512\n" +" ipa group-add-member ad_admins_external --external 'AD\\Domain Admins'\n" "\n" -"4. Allow members of ad_admins_external group to be associated with ad_admins " +"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 "" -#: ipalib/plugins/trust.py:114 +#: ipalib/plugins/trust.py:134 msgid "Non-Active Directory domain" msgstr "" -#: ipalib/plugins/trust.py:116 +#: ipalib/plugins/trust.py:136 msgid "RFC4120-compliant Kerberos realm" msgstr "" -#: ipalib/plugins/trust.py:117 +#: ipalib/plugins/trust.py:137 msgid "Trusting forest" msgstr "" -#: ipalib/plugins/trust.py:118 +#: ipalib/plugins/trust.py:138 msgid "Trusted forest" msgstr "" -#: ipalib/plugins/trust.py:119 +#: ipalib/plugins/trust.py:139 msgid "Two-way trust" msgstr "" -#: ipalib/plugins/trust.py:120 +#: ipalib/plugins/trust.py:140 msgid "Established and verified" msgstr "" -#: ipalib/plugins/trust.py:121 +#: ipalib/plugins/trust.py:141 msgid "Waiting for confirmation by remote side" msgstr "" -#: ipalib/plugins/trust.py:122 +#: ipalib/plugins/trust.py:142 msgid "Unknown" msgstr "" -#: ipalib/plugins/trust.py:153 -msgid "trust" +#: ipalib/plugins/trust.py:146 +msgid "Trust type (ad for Active Directory, default)" msgstr "" -#: ipalib/plugins/trust.py:154 -msgid "trusts" +#: ipalib/plugins/trust.py:181 +msgid "trust" msgstr "" -#: ipalib/plugins/trust.py:163 -msgid "Trusts" +#: ipalib/plugins/trust.py:182 +msgid "trusts" msgstr "" -#: ipalib/plugins/trust.py:164 +#: ipalib/plugins/trust.py:192 msgid "Trust" msgstr "" -#: ipalib/plugins/trust.py:169 ipa-client/ipa-rmkeytab.c:176 +#: ipalib/plugins/trust.py:197 ipa-client/ipa-rmkeytab.c:176 msgid "Realm name" msgstr "" -#: ipalib/plugins/trust.py:182 -msgid "Add new trust to use" +#: ipalib/plugins/trust.py:211 +msgid "SID blacklist incoming" msgstr "" -#: ipalib/plugins/trust.py:187 -msgid "Trust type (ad for Active Directory, default)" +#: ipalib/plugins/trust.py:216 +msgid "SID blacklist outgoing" +msgstr "" + +#: ipalib/plugins/trust.py:233 +#, python-format +msgid "invalid SID: %(value)s" msgstr "" -#: ipalib/plugins/trust.py:194 +#: ipalib/plugins/trust.py:243 +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 "" + +#: ipalib/plugins/trust.py:261 msgid "Active Directory domain administrator" msgstr "" -#: ipalib/plugins/trust.py:198 +#: ipalib/plugins/trust.py:265 msgid "Active directory domain administrator's password" msgstr "" -#: ipalib/plugins/trust.py:203 +#: ipalib/plugins/trust.py:270 msgid "Domain controller for the Active Directory domain (optional)" msgstr "" -#: ipalib/plugins/trust.py:207 +#: ipalib/plugins/trust.py:274 msgid "Shared secret for the trust" msgstr "" -#: ipalib/plugins/trust.py:212 +#: ipalib/plugins/trust.py:279 msgid "First Posix ID of the range reserved for the trusted domain" msgstr "" -#: ipalib/plugins/trust.py:216 +#: ipalib/plugins/trust.py:283 msgid "Size of the ID range reserved for the trusted domain" msgstr "" -#: ipalib/plugins/trust.py:222 +#: ipalib/plugins/trust.py:289 #, python-format msgid "Added Active Directory trust for realm \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:227 +#: ipalib/plugins/trust.py:294 msgid "missing base_id" msgstr "" -#: ipalib/plugins/trust.py:228 +#: ipalib/plugins/trust.py:295 msgid "pysss_murmur is not available on the server and no base-id is given." msgstr "" -#: ipalib/plugins/trust.py:235 ipalib/plugins/trust.py:237 +#: ipalib/plugins/trust.py:302 ipalib/plugins/trust.py:304 msgid "trust type" msgstr "" -#: ipalib/plugins/trust.py:235 +#: ipalib/plugins/trust.py:302 msgid "only \"ad\" is supported" msgstr "" -#: ipalib/plugins/trust.py:272 +#: ipalib/plugins/trust.py:339 msgid "range exists" msgstr "" -#: ipalib/plugins/trust.py:273 +#: ipalib/plugins/trust.py:340 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 "" -#: ipalib/plugins/trust.py:289 -msgid "ID range exists" -msgstr "" - -#: ipalib/plugins/trust.py:290 -msgid "ID range already exists, must be added manually" -msgstr "" - -#: ipalib/plugins/trust.py:297 ipalib/plugins/trust.py:308 -#: ipalib/plugins/trust.py:321 ipalib/plugins/trust.py:326 -#: ipalib/plugins/trust.py:360 ipalib/plugins/trust.py:371 +#: ipalib/plugins/trust.py:361 ipalib/plugins/trust.py:372 +#: ipalib/plugins/trust.py:390 ipalib/plugins/trust.py:395 +#: ipalib/plugins/trust.py:426 ipalib/plugins/trust.py:442 msgid "AD Trust setup" msgstr "" -#: ipalib/plugins/trust.py:298 +#: ipalib/plugins/trust.py:362 msgid "" "Cannot perform join operation without Samba 4 support installed.\n" " Make sure you have installed server-trust-ad " "sub-package of IPA" msgstr "" -#: ipalib/plugins/trust.py:309 +#: ipalib/plugins/trust.py:373 msgid "" "Cannot perform join operation without own domain configured.\n" " Make sure you have run ipa-adtrust-install on " "the IPA server first" msgstr "" -#: ipalib/plugins/trust.py:322 +#: ipalib/plugins/trust.py:378 +#, python-format +msgid "Re-established trust to domain \"%(value)s\"" +msgstr "" + +#: ipalib/plugins/trust.py:391 msgid "Trusted domain and administrator account use different realms" msgstr "" -#: ipalib/plugins/trust.py:326 +#: ipalib/plugins/trust.py:395 msgid "Realm administrator password should be specified" msgstr "" -#: ipalib/plugins/trust.py:332 +#: ipalib/plugins/trust.py:401 #, python-format msgid "Unable to resolve domain controller for '%s' domain. " msgstr "" -#: ipalib/plugins/trust.py:337 +#: ipalib/plugins/trust.py:407 msgid "" "Forward policy is defined for it in IPA DNS, perhaps forwarder points to " "incorrect host?" msgstr "" -#: ipalib/plugins/trust.py:340 -#, python-format -msgid "" -"IPA manages DNS, please configure forwarder to '%(domain)s' domain using " -"following CLI command. Make sure to replace DNS_SERVER and IP_ADDRESS by " -"actual values corresponding to the trusted domain's DNS server:" -msgstr "" - -#: ipalib/plugins/trust.py:347 -#, python-format -msgid "" -"\tipa dnszone-add %(domain)s --name-server=[DNS_SERVER] --admin-" -"email='hostmaster@%(domain)s' --force --forwarder=[IP_ADDRESS] --forward-" -"policy=only" -msgstr "" - -#: ipalib/plugins/trust.py:351 +#: ipalib/plugins/trust.py:410 #, python-format msgid "" -"When using Web UI, please create DNS zone for domain '%(domain)s' first and " -"then set forwarder and forward policy." +"IPA manages DNS, please verify your DNS configuration and make sure that " +"service records of the '%(domain)s' domain can be resolved. Examples how to " +"configure DNS with CLI commands or the Web UI can be found in the " +"documentation. " msgstr "" -#: ipalib/plugins/trust.py:354 +#: ipalib/plugins/trust.py:420 #, python-format msgid "" "Since IPA does not manage DNS records, ensure DNS is configured to resolve " "'%(domain)s' domain from IPA hosts and back." msgstr "" -#: ipalib/plugins/trust.py:361 +#: ipalib/plugins/trust.py:427 msgid "Unable to verify write permissions to the AD" msgstr "" -#: ipalib/plugins/trust.py:372 +#: ipalib/plugins/trust.py:443 msgid "Not enough arguments specified to perform trust setup" msgstr "" -#: ipalib/plugins/trust.py:375 +#: ipalib/plugins/trust.py:446 msgid "Delete a trust." msgstr "" -#: ipalib/plugins/trust.py:377 +#: ipalib/plugins/trust.py:448 #, python-format msgid "Deleted trust \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:388 +#: ipalib/plugins/trust.py:459 msgid "" "\n" " Modify a trust (for future use).\n" @@ -9217,27 +9734,68 @@ msgid "" " " msgstr "" -#: ipalib/plugins/trust.py:395 +#: ipalib/plugins/trust.py:466 #, python-format -msgid "Modified trust \"%(value)s\"" +msgid "Modified trust \"%(value)s\" (change will be effective in 60 seconds)" msgstr "" -#: ipalib/plugins/trust.py:409 +#: ipalib/plugins/trust.py:483 msgid "Search for trusts." msgstr "" -#: ipalib/plugins/trust.py:413 +#: ipalib/plugins/trust.py:487 #, python-format msgid "%(count)d trust matched" msgid_plural "%(count)d trusts matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/trust.py:433 +#: ipalib/plugins/trust.py:507 msgid "Display information about a trust." msgstr "" -#: ipalib/plugins/user.py:39 +#: ipalib/plugins/trust.py:551 +msgid "trust configuration" +msgstr "" + +#: ipalib/plugins/trust.py:557 ipalib/plugins/trust.py:558 +msgid "Global Trust Configuration" +msgstr "" + +#: ipalib/plugins/trust.py:566 +msgid "Security Identifier" +msgstr "" + +#: ipalib/plugins/trust.py:570 +msgid "NetBIOS name" +msgstr "" + +#: ipalib/plugins/trust.py:574 +msgid "Domain GUID" +msgstr "" + +#: ipalib/plugins/trust.py:579 +msgid "Fallback primary group" +msgstr "" + +#: ipalib/plugins/trust.py:591 +msgid "unsupported trust type" +msgstr "" + +#: ipalib/plugins/trust.py:654 +msgid "Modify global trust configuration." +msgstr "" + +#: ipalib/plugins/trust.py:657 +#, python-format +msgid "Modified \"%(value)s\" trust configuration" +msgstr "" + +#: ipalib/plugins/trust.py:676 +msgid "Show global trust configuration." +msgstr "" + +#: ipalib/plugins/user.py:41 msgid "" "\n" "Users\n" @@ -9283,250 +9841,250 @@ msgid "" " ipa user-del tuser1\n" msgstr "" -#: ipalib/plugins/user.py:88 +#: ipalib/plugins/user.py:89 msgid "Kerberos keys available" msgstr "" -#: ipalib/plugins/user.py:97 +#: ipalib/plugins/user.py:98 msgid "Server" msgstr "" -#: ipalib/plugins/user.py:100 +#: ipalib/plugins/user.py:101 msgid "Failed logins" msgstr "" -#: ipalib/plugins/user.py:103 +#: ipalib/plugins/user.py:104 msgid "Last successful authentication" msgstr "" -#: ipalib/plugins/user.py:106 +#: ipalib/plugins/user.py:107 msgid "Last failed authentication" msgstr "" -#: ipalib/plugins/user.py:109 +#: ipalib/plugins/user.py:110 msgid "Time now" msgstr "" -#: ipalib/plugins/user.py:124 +#: ipalib/plugins/user.py:125 msgid "must be TRUE or FALSE" msgstr "" -#: ipalib/plugins/user.py:196 +#: ipalib/plugins/user.py:197 msgid "user" msgstr "" -#: ipalib/plugins/user.py:197 +#: ipalib/plugins/user.py:198 msgid "users" msgstr "" -#: ipalib/plugins/user.py:233 +#: ipalib/plugins/user.py:234 msgid "User login" msgstr "" -#: ipalib/plugins/user.py:240 +#: ipalib/plugins/user.py:241 msgid "First name" msgstr "" -#: ipalib/plugins/user.py:244 +#: ipalib/plugins/user.py:245 msgid "Last name" msgstr "" -#: ipalib/plugins/user.py:247 +#: ipalib/plugins/user.py:248 msgid "Full name" msgstr "" -#: ipalib/plugins/user.py:252 +#: ipalib/plugins/user.py:253 msgid "Display name" msgstr "" -#: ipalib/plugins/user.py:257 +#: ipalib/plugins/user.py:258 msgid "Initials" msgstr "" -#: ipalib/plugins/user.py:263 +#: ipalib/plugins/user.py:264 msgid "Home directory" msgstr "" -#: ipalib/plugins/user.py:266 +#: ipalib/plugins/user.py:267 msgid "GECOS field" msgstr "" -#: ipalib/plugins/user.py:272 +#: ipalib/plugins/user.py:273 msgid "Login shell" msgstr "" -#: ipalib/plugins/user.py:276 +#: ipalib/plugins/user.py:277 msgid "Kerberos principal" msgstr "" -#: ipalib/plugins/user.py:284 +#: ipalib/plugins/user.py:285 msgid "Email address" msgstr "" -#: ipalib/plugins/user.py:289 +#: ipalib/plugins/user.py:290 msgid "Prompt to set the user password" msgstr "" -#: ipalib/plugins/user.py:295 +#: ipalib/plugins/user.py:296 msgid "Generate a random user password" msgstr "" -#: ipalib/plugins/user.py:305 +#: ipalib/plugins/user.py:306 msgid "UID" msgstr "" -#: ipalib/plugins/user.py:306 +#: ipalib/plugins/user.py:307 msgid "User ID Number (system will assign one if not provided)" msgstr "" -#: ipalib/plugins/user.py:313 +#: ipalib/plugins/user.py:312 msgid "Group ID Number" msgstr "" -#: ipalib/plugins/user.py:320 +#: ipalib/plugins/user.py:317 msgid "Street address" msgstr "" -#: ipalib/plugins/user.py:324 +#: ipalib/plugins/user.py:321 msgid "City" msgstr "" -#: ipalib/plugins/user.py:328 +#: ipalib/plugins/user.py:325 msgid "State/Province" msgstr "" -#: ipalib/plugins/user.py:331 +#: ipalib/plugins/user.py:328 msgid "ZIP" msgstr "" -#: ipalib/plugins/user.py:335 +#: ipalib/plugins/user.py:332 msgid "Telephone Number" msgstr "" -#: ipalib/plugins/user.py:338 +#: ipalib/plugins/user.py:335 msgid "Mobile Telephone Number" msgstr "" -#: ipalib/plugins/user.py:341 +#: ipalib/plugins/user.py:338 msgid "Pager Number" msgstr "" -#: ipalib/plugins/user.py:345 +#: ipalib/plugins/user.py:342 msgid "Fax Number" msgstr "" -#: ipalib/plugins/user.py:349 +#: ipalib/plugins/user.py:346 msgid "Org. Unit" msgstr "" -#: ipalib/plugins/user.py:352 +#: ipalib/plugins/user.py:349 msgid "Job Title" msgstr "" -#: ipalib/plugins/user.py:355 +#: ipalib/plugins/user.py:352 msgid "Manager" msgstr "" -#: ipalib/plugins/user.py:358 +#: ipalib/plugins/user.py:355 msgid "Car License" msgstr "" -#: ipalib/plugins/user.py:361 +#: ipalib/plugins/user.py:358 msgid "Account disabled" msgstr "" -#: ipalib/plugins/user.py:388 ipalib/plugins/user.py:392 +#: ipalib/plugins/user.py:385 ipalib/plugins/user.py:389 #, python-format msgid "invalid e-mail format: %(email)s" msgstr "" -#: ipalib/plugins/user.py:418 +#: ipalib/plugins/user.py:415 #, python-format msgid "manager %(manager)s not found" msgstr "" -#: ipalib/plugins/user.py:437 +#: ipalib/plugins/user.py:434 msgid "Add a new user." msgstr "" -#: ipalib/plugins/user.py:439 +#: ipalib/plugins/user.py:436 #, python-format msgid "Added user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:446 +#: ipalib/plugins/user.py:443 msgid "Don't create user private group" msgstr "" -#: ipalib/plugins/user.py:477 ipalib/plugins/user.py:615 +#: ipalib/plugins/user.py:487 ipalib/plugins/user.py:623 #, python-format msgid "can be at most %(len)d characters" msgstr "" -#: ipalib/plugins/user.py:512 +#: ipalib/plugins/user.py:522 msgid "Default group for new users is not POSIX" msgstr "" -#: ipalib/plugins/user.py:588 +#: ipalib/plugins/user.py:596 msgid "Delete a user." msgstr "" -#: ipalib/plugins/user.py:590 +#: ipalib/plugins/user.py:598 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:601 +#: ipalib/plugins/user.py:609 msgid "Modify a user." msgstr "" -#: ipalib/plugins/user.py:603 +#: ipalib/plugins/user.py:611 #, python-format msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:656 +#: ipalib/plugins/user.py:664 msgid "Search for users." msgstr "" -#: ipalib/plugins/user.py:663 +#: ipalib/plugins/user.py:671 msgid "Self" msgstr "" -#: ipalib/plugins/user.py:664 +#: ipalib/plugins/user.py:672 msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/plugins/user.py:695 +#: ipalib/plugins/user.py:703 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/user.py:702 +#: ipalib/plugins/user.py:710 msgid "Display information about a user." msgstr "" -#: ipalib/plugins/user.py:718 +#: ipalib/plugins/user.py:726 msgid "Disable a user account." msgstr "" -#: ipalib/plugins/user.py:721 +#: ipalib/plugins/user.py:729 #, python-format msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:740 +#: ipalib/plugins/user.py:748 msgid "Enable a user account." msgstr "" -#: ipalib/plugins/user.py:744 +#: ipalib/plugins/user.py:752 #, python-format msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:761 +#: ipalib/plugins/user.py:769 msgid "" "\n" " Unlock a user account\n" @@ -9538,12 +10096,12 @@ msgid "" " an administrator." msgstr "" -#: ipalib/plugins/user.py:770 +#: ipalib/plugins/user.py:778 #, python-format msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:786 +#: ipalib/plugins/user.py:794 msgid "" "\n" " Lockout status of a user account\n" @@ -9572,17 +10130,17 @@ msgid "" " means that the user may attempt a login again. " msgstr "" -#: ipalib/plugins/user.py:845 +#: ipalib/plugins/user.py:852 #, python-format msgid "%(host)s failed: %(error)s" msgstr "" -#: ipalib/plugins/user.py:883 +#: ipalib/plugins/user.py:888 #, python-format msgid "%(host)s failed" msgstr "" -#: ipalib/plugins/user.py:893 +#: ipalib/plugins/user.py:898 #, python-format msgid "Account disabled: %(disabled)s" msgstr "" @@ -9595,101 +10153,107 @@ msgstr "" msgid "No such virtual command" msgstr "" -#: ipalib/rpc.py:491 +#: ipalib/rpc.py:673 msgid "any of the configured servers" msgstr "" -#: ipalib/session.py:775 ipalib/session.py:878 +#: ipalib/session.py:776 ipalib/session.py:879 msgid "could not allocate unique new session_id" msgstr "" -#: ipalib/util.py:150 +#: ipalib/util.py:186 msgid "Filename is empty" msgstr "" -#: ipalib/util.py:154 +#: ipalib/util.py:190 #, python-format msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/util.py:192 +#: ipalib/util.py:228 msgid "empty DNS label" msgstr "" -#: ipalib/util.py:195 +#: ipalib/util.py:231 msgid "DNS label cannot be longer that 63 characters" msgstr "" -#: ipalib/util.py:198 +#: ipalib/util.py:234 #, python-format msgid "" "only letters, numbers,%(underscore)s and - are allowed. DNS label may not " "start or end with -" msgstr "" -#: ipalib/util.py:213 -msgid "top level domain label must be alphabetic" -msgstr "" - -#: ipalib/util.py:219 +#: ipalib/util.py:252 msgid "" "mail account may only include letters, numbers, -, _ and a dot. There may " "not be consecutive -, _ and . characters. Its parts may not start or end " "with - or _" msgstr "" -#: ipalib/util.py:225 ipalib/util.py:264 +#: ipalib/util.py:258 ipalib/util.py:297 msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/util.py:233 +#: ipalib/util.py:266 msgid "too many '@' characters" msgstr "" -#: ipalib/util.py:246 +#: ipalib/util.py:279 msgid "missing address domain" msgstr "" -#: ipalib/util.py:251 +#: ipalib/util.py:284 msgid "missing mail account" msgstr "" -#: ipalib/util.py:270 +#: ipalib/util.py:303 msgid "hostname contains empty label (consecutive dots)" msgstr "" -#: ipalib/util.py:274 +#: ipalib/util.py:307 msgid "not fully qualified" msgstr "" -#: ipalib/util.py:286 ipalib/util.py:292 +#: ipalib/util.py:319 ipalib/util.py:325 msgid "invalid SSH public key" msgstr "" -#: ipalib/util.py:295 +#: ipalib/util.py:328 msgid "options are not allowed" msgstr "" -#: ipalib/x509.py:199 +#: ipalib/x509.py:205 msgid "improperly formatted DER-encoded certificate" msgstr "" -#: ipalib/x509.py:236 +#: ipalib/x509.py:243 #, python-format msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipapython/dogtag.py:160 +#: ipapython/dogtag.py:176 #, python-format msgid "Retrieving CA cert chain failed: %s" msgstr "" -#: ipapython/dogtag.py:166 +#: ipapython/dogtag.py:182 #, python-format msgid "request failed with HTTP status %d" msgstr "" -#: ipaserver/dcerpc.py:50 +#: ipapython/dogtag.py:205 ipapython/dogtag.py:212 +#, python-format +msgid "Retrieving CA status failed: %s" +msgstr "" + +#: ipapython/ipaldap.py:991 +#, python-format +msgid "objectclass %s not found" +msgstr "" + +#: ipaserver/dcerpc.py:57 msgid "" "\n" "Classes to manage trust joins using DCE-RPC calls\n" @@ -9698,86 +10262,171 @@ msgid "" "and Samba4 python bindings.\n" msgstr "" -#: ipaserver/dcerpc.py:57 +#: ipaserver/dcerpc.py:72 msgid "CIFS server denied your credentials" msgstr "" -#: ipaserver/dcerpc.py:60 +#: ipaserver/dcerpc.py:75 msgid "communication with CIFS server was unsuccessful" msgstr "" -#: ipaserver/dcerpc.py:65 +#: ipaserver/dcerpc.py:80 msgid "AD domain controller" msgstr "" -#: ipaserver/dcerpc.py:65 +#: ipaserver/dcerpc.py:80 msgid "unsupported functional level" msgstr "" -#: ipaserver/dcerpc.py:70 +#: ipaserver/dcerpc.py:85 msgid "Cannot find specified domain or server name" msgstr "" -#: ipaserver/dcerpc.py:72 +#: ipaserver/dcerpc.py:87 msgid "At least the domain or IP address should be specified" msgstr "" -#: ipaserver/dcerpc.py:84 +#: ipaserver/dcerpc.py:99 #, python-format msgid "" "CIFS server communication error: code \"%(num)s\",\n" " message \"%(message)s\" (both may be \"None\")" msgstr "" -#: ipaserver/dcerpc.py:184 +#: ipaserver/dcerpc.py:177 +msgid "" +"communication with trusted domains is allowed for Trusts administrator group " +"members only" +msgstr "" + +#: ipaserver/dcerpc.py:192 +msgid "domain is not configured" +msgstr "" + +#: ipaserver/dcerpc.py:199 +msgid "SID is not valid" +msgstr "" + +#: ipaserver/dcerpc.py:210 +msgid "no trusted domain is configured" +msgstr "" + +#: ipaserver/dcerpc.py:221 +msgid "SID does not match exactlywith any trusted domain's SID" +msgstr "" + +#: ipaserver/dcerpc.py:232 +msgid "SID does not match any trusted domain" +msgstr "" + +#: ipaserver/dcerpc.py:272 ipaserver/dcerpc.py:278 ipaserver/dcerpc.py:448 +msgid "Trust setup" +msgstr "" + +#: ipaserver/dcerpc.py:273 +msgid "Our domain is not configured" +msgstr "" + +#: ipaserver/dcerpc.py:279 +msgid "No trusted domain is not configured" +msgstr "" + +#: ipaserver/dcerpc.py:284 ipaserver/dcerpc.py:299 ipaserver/dcerpc.py:310 +#: ipaserver/dcerpc.py:322 ipaserver/dcerpc.py:329 ipaserver/dcerpc.py:374 +msgid "trusted domain object" +msgstr "" + +#: ipaserver/dcerpc.py:285 +msgid "domain is not trusted" +msgstr "" + +#: ipaserver/dcerpc.py:300 +msgid "no trusted domain matched the specified flat name" +msgstr "" + +#: ipaserver/dcerpc.py:302 +msgid "trusted domain object not found" +msgstr "" + +#: ipaserver/dcerpc.py:311 ipaserver/dcerpc.py:375 +msgid "Ambiguous search, user domain was not specified" +msgstr "" + +#: ipaserver/dcerpc.py:323 +msgid "Trusted domain did not return a unique object" +msgstr "" + +#: ipaserver/dcerpc.py:330 +msgid "Trusted domain did not return a valid SID for the object" +msgstr "" + +#: ipaserver/dcerpc.py:360 ipaserver/dcerpc.py:370 +msgid "trusted domain user not found" +msgstr "" + +#: ipaserver/dcerpc.py:435 +#, python-format +msgid "" +"KDC for %(domain)s denied trust account for IPA domain with a message " +"'%(message)s'" +msgstr "" + +#: ipaserver/dcerpc.py:449 +msgid "Cannot retrieve trusted domain GC list" +msgstr "" + +#: ipaserver/dcerpc.py:559 msgid "CIFS credentials object" msgstr "" -#: ipaserver/dcerpc.py:217 +#: ipaserver/dcerpc.py:592 #, python-format msgid "CIFS server %(host)s denied your credentials" msgstr "" -#: ipaserver/dcerpc.py:221 +#: ipaserver/dcerpc.py:596 #, python-format msgid "Cannot establish LSA connection to %(host)s. Is CIFS server running?" msgstr "" -#: ipaserver/install/certs.py:673 ipaserver/plugins/dogtag.py:1379 -#: ipaserver/plugins/dogtag.py:1464 ipaserver/plugins/dogtag.py:1530 -#: ipaserver/plugins/dogtag.py:1609 ipaserver/plugins/dogtag.py:1668 +#: ipaserver/dcerpc.py:748 +#, python-format +msgid "" +"the IPA server and the remote domain cannot share the same NetBIOS name: %s" +msgstr "" + +#: ipaserver/install/certs.py:874 #, python-format msgid "Unable to communicate with CMS (%s)" msgstr "" -#: ipaserver/plugins/join.py:56 +#: ipaserver/plugins/dogtag.py:1252 +msgid "Unable to communicate with CMS" +msgstr "" + +#: ipaserver/plugins/join.py:59 msgid "The hostname to register as" msgstr "" -#: ipaserver/plugins/join.py:64 +#: ipaserver/plugins/join.py:68 msgid "The IPA realm" msgstr "" -#: ipaserver/plugins/join.py:70 +#: ipaserver/plugins/join.py:74 msgid "Hardware platform of the host (e.g. Lenovo T61)" msgstr "" -#: ipaserver/plugins/join.py:74 +#: ipaserver/plugins/join.py:78 msgid "Operating System and version of the host (e.g. Fedora 9)" msgstr "" -#: ipaserver/plugins/join.py:109 +#: ipaserver/plugins/join.py:118 #, python-format msgid "" "Insufficient 'write' privilege to the 'krbLastPwdChange' attribute of entry " "'%s'." msgstr "" -#: ipaserver/plugins/ldap2.py:753 -#, python-format -msgid "objectclass %s not found" -msgstr "" - #: ipaserver/plugins/selfsign.py:98 #, python-format msgid "" @@ -10152,7 +10801,7 @@ msgstr "" #: ipa-client/ipa-join.c:408 ipa-client/ipa-join.c:483 #: ipa-client/ipa-join.c:501 ipa-client/ipa-join.c:602 -#: ipa-client/ipa-join.c:796 ipa-client/ipa-join.c:864 util/ipa_krb5.c:973 +#: ipa-client/ipa-join.c:808 ipa-client/ipa-join.c:869 util/ipa_krb5.c:973 #: util/ipa_krb5.c:1007 #, c-format msgid "Out of memory!\n" @@ -10193,158 +10842,162 @@ msgstr "" msgid "Host is already joined.\n" msgstr "" -#: ipa-client/ipa-join.c:744 ipa-client/ipa-join.c:950 +#: ipa-client/ipa-join.c:751 ipa-client/ipa-join.c:955 #, c-format msgid "Unable to determine IPA server from %s\n" msgstr "" -#: ipa-client/ipa-join.c:760 ipa-client/ipa-join.c:965 +#: ipa-client/ipa-join.c:772 ipa-client/ipa-join.c:970 #, c-format msgid "The hostname must be fully-qualified: %s\n" msgstr "" -#: ipa-client/ipa-join.c:769 ipa-client/ipa-join.c:981 +#: ipa-client/ipa-join.c:781 ipa-client/ipa-join.c:986 #, c-format msgid "Unable to join host: Kerberos context initialization failed\n" msgstr "" -#: ipa-client/ipa-join.c:777 +#: ipa-client/ipa-join.c:789 #, c-format msgid "Error resolving keytab: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:786 +#: ipa-client/ipa-join.c:798 #, c-format msgid "Error getting default Kerberos realm: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:804 +#: ipa-client/ipa-join.c:816 #, c-format msgid "Error parsing \"%1$s\": %2$s.\n" msgstr "" -#: ipa-client/ipa-join.c:822 +#: ipa-client/ipa-join.c:834 #, c-format msgid "Error obtaining initial credentials: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:833 +#: ipa-client/ipa-join.c:845 #, c-format msgid "Unable to generate Kerberos Credential Cache\n" msgstr "" -#: ipa-client/ipa-join.c:841 +#: ipa-client/ipa-join.c:853 #, c-format msgid "Error storing creds in credential cache: %s.\n" msgstr "" -#: ipa-client/ipa-join.c:895 +#: ipa-client/ipa-join.c:900 #, c-format msgid "Unenrollment successful.\n" msgstr "" -#: ipa-client/ipa-join.c:898 +#: ipa-client/ipa-join.c:903 #, c-format msgid "Unenrollment failed.\n" msgstr "" -#: ipa-client/ipa-join.c:903 +#: ipa-client/ipa-join.c:908 #, c-format msgid "result not found in XML-RPC response\n" msgstr "" -#: ipa-client/ipa-join.c:971 +#: ipa-client/ipa-join.c:976 #, c-format msgid "The hostname must not be: %s\n" msgstr "" -#: ipa-client/ipa-join.c:988 +#: ipa-client/ipa-join.c:993 #, c-format msgid "Unable to join host: Kerberos Credential Cache not found\n" msgstr "" -#: ipa-client/ipa-join.c:996 +#: ipa-client/ipa-join.c:1001 #, c-format msgid "" "Unable to join host: Kerberos User Principal not found and host password not " "provided.\n" msgstr "" -#: ipa-client/ipa-join.c:1010 +#: ipa-client/ipa-join.c:1016 #, c-format msgid "fork() failed\n" msgstr "" -#: ipa-client/ipa-join.c:1039 +#: ipa-client/ipa-join.c:1045 #, c-format msgid "ipa-getkeytab not found\n" msgstr "" -#: ipa-client/ipa-join.c:1042 +#: ipa-client/ipa-join.c:1048 #, c-format msgid "ipa-getkeytab has bad permissions?\n" msgstr "" -#: ipa-client/ipa-join.c:1045 +#: ipa-client/ipa-join.c:1051 #, c-format msgid "executing ipa-getkeytab failed, errno %d\n" msgstr "" -#: ipa-client/ipa-join.c:1057 +#: ipa-client/ipa-join.c:1063 #, c-format msgid "child exited with %d\n" msgstr "" -#: ipa-client/ipa-join.c:1063 +#: ipa-client/ipa-join.c:1069 #, c-format msgid "Certificate subject base is: %s\n" msgstr "" -#: ipa-client/ipa-join.c:1100 +#: ipa-client/ipa-join.c:1107 msgid "Print the raw XML-RPC output in GSSAPI mode" msgstr "" -#: ipa-client/ipa-join.c:1102 +#: ipa-client/ipa-join.c:1109 msgid "Quiet mode. Only errors are displayed." msgstr "" -#: ipa-client/ipa-join.c:1104 +#: ipa-client/ipa-join.c:1111 msgid "Unenroll this host from IPA server" msgstr "" -#: ipa-client/ipa-join.c:1106 +#: ipa-client/ipa-join.c:1113 msgid "Hostname of this server" msgstr "" -#: ipa-client/ipa-join.c:1106 ipa-client/ipa-join.c:1108 +#: ipa-client/ipa-join.c:1113 ipa-client/ipa-join.c:1115 msgid "hostname" msgstr "" -#: ipa-client/ipa-join.c:1108 +#: ipa-client/ipa-join.c:1115 msgid "IPA Server to use" msgstr "" -#: ipa-client/ipa-join.c:1110 +#: ipa-client/ipa-join.c:1117 msgid "Specifies where to store keytab information." msgstr "" -#: ipa-client/ipa-join.c:1110 +#: ipa-client/ipa-join.c:1117 msgid "filename" msgstr "" -#: ipa-client/ipa-join.c:1112 +#: ipa-client/ipa-join.c:1119 +msgid "Force the host join. Rejoin even if already joined." +msgstr "" + +#: ipa-client/ipa-join.c:1121 msgid "LDAP password (if not using Kerberos)" msgstr "" -#: ipa-client/ipa-join.c:1112 +#: ipa-client/ipa-join.c:1121 msgid "password" msgstr "" -#: ipa-client/ipa-join.c:1114 +#: ipa-client/ipa-join.c:1123 msgid "LDAP basedn" msgstr "" -#: ipa-client/ipa-join.c:1114 +#: ipa-client/ipa-join.c:1123 msgid "basedn" msgstr "" |