diff options
author | Petr Viktorin <pviktori@redhat.com> | 2012-10-12 04:09:03 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2012-10-11 16:09:27 -0400 |
commit | 1907f720d527b07a12a9525f5ae8680b6c21cd57 (patch) | |
tree | 6bc6dcc31a52ebebbee9b4a89e194c806555ff97 /install/po/ipa.pot | |
parent | ea4f60b15a2743eb61f27ccd33d7bed17552eade (diff) | |
download | freeipa-1907f720d527b07a12a9525f5ae8680b6c21cd57.tar.gz freeipa-1907f720d527b07a12a9525f5ae8680b6c21cd57.tar.xz freeipa-1907f720d527b07a12a9525f5ae8680b6c21cd57.zip |
Pull translation files from Transifex
Patch generated by:
cd install/po
make pull-po
make update-po
Diffstat (limited to 'install/po/ipa.pot')
-rw-r--r-- | install/po/ipa.pot | 1487 |
1 files changed, 834 insertions, 653 deletions
diff --git a/install/po/ipa.pot b/install/po/ipa.pot index ba5116885..dea6202cd 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-09-12 04:31-0400\n" +"POT-Creation-Date: 2012-10-12 04:08-0400\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" @@ -74,359 +74,363 @@ msgstr "" msgid "No file to read" msgstr "" -#: ipalib/errors.py:305 +#: ipalib/errors.py:311 #, python-format msgid "%(cver)s client incompatible with %(sver)s server at %(server)r" msgstr "" -#: ipalib/errors.py:323 +#: ipalib/errors.py:329 #, python-format msgid "unknown error %(code)d from %(server)s: %(error)s" msgstr "" -#: ipalib/errors.py:339 +#: ipalib/errors.py:345 msgid "an internal error has occurred" msgstr "" -#: ipalib/errors.py:361 +#: ipalib/errors.py:367 #, python-format msgid "an internal error has occurred on server at %(server)r" msgstr "" -#: ipalib/errors.py:377 +#: ipalib/errors.py:383 #, python-format msgid "unknown command %(name)r" msgstr "" -#: ipalib/errors.py:394 ipalib/errors.py:419 +#: ipalib/errors.py:400 ipalib/errors.py:425 #, python-format msgid "error on server %(server)r: %(error)s" msgstr "" -#: ipalib/errors.py:410 +#: ipalib/errors.py:416 #, python-format msgid "cannot connect to %(uri)r: %(error)s" msgstr "" -#: ipalib/errors.py:428 +#: ipalib/errors.py:434 #, python-format msgid "Invalid JSON-RPC request: %(error)s" msgstr "" -#: ipalib/errors.py:444 +#: ipalib/errors.py:450 #, python-format msgid "error marshalling data for XML-RPC transport: %(error)s" msgstr "" -#: ipalib/errors.py:460 +#: ipalib/errors.py:466 #, python-format msgid "Missing or invalid HTTP Referer, %(referer)s" msgstr "" -#: ipalib/errors.py:487 +#: ipalib/errors.py:493 #, python-format msgid "Kerberos error: %(major)s/%(minor)s" msgstr "" -#: ipalib/errors.py:504 +#: ipalib/errors.py:510 msgid "did not receive Kerberos credentials" msgstr "" -#: ipalib/errors.py:520 +#: ipalib/errors.py:526 #, python-format msgid "Service %(service)r not found in Kerberos database" msgstr "" -#: ipalib/errors.py:536 +#: ipalib/errors.py:542 msgid "No credentials cache found" msgstr "" -#: ipalib/errors.py:552 +#: ipalib/errors.py:558 msgid "Ticket expired" msgstr "" -#: ipalib/errors.py:568 +#: ipalib/errors.py:574 msgid "Credentials cache permissions incorrect" msgstr "" -#: ipalib/errors.py:584 +#: ipalib/errors.py:590 msgid "Bad format in credentials cache" msgstr "" -#: ipalib/errors.py:600 +#: ipalib/errors.py:606 msgid "Cannot resolve KDC for requested realm" msgstr "" -#: ipalib/errors.py:612 +#: ipalib/errors.py:618 msgid "Session error" msgstr "" -#: ipalib/errors.py:620 +#: ipalib/errors.py:626 #, python-format msgid "Principal %(principal)s cannot be authenticated: %(message)s" msgstr "" -#: ipalib/errors.py:638 +#: ipalib/errors.py:644 #, python-format msgid "Insufficient access: %(info)s" msgstr "" -#: ipalib/errors.py:682 +#: ipalib/errors.py:688 #, python-format msgid "command %(name)r takes no arguments" msgstr "" -#: ipalib/errors.py:702 +#: ipalib/errors.py:708 #, python-format msgid "command %(name)r takes at most %(count)d argument" msgid_plural "command %(name)r takes at most %(count)d arguments" msgstr[0] "" msgstr[1] "" -#: ipalib/errors.py:732 +#: ipalib/errors.py:738 #, python-format msgid "overlapping arguments and options: %(names)r" msgstr "" -#: ipalib/errors.py:748 +#: ipalib/errors.py:754 #, python-format msgid "%(name)r is required" msgstr "" -#: ipalib/errors.py:764 ipalib/errors.py:780 +#: ipalib/errors.py:770 ipalib/errors.py:786 #, python-format msgid "invalid %(name)r: %(error)s" msgstr "" -#: ipalib/errors.py:796 +#: ipalib/errors.py:802 #, python-format msgid "api has no such namespace: %(name)r" msgstr "" -#: ipalib/errors.py:805 +#: ipalib/errors.py:811 msgid "Passwords do not match" msgstr "" -#: ipalib/errors.py:814 +#: ipalib/errors.py:820 msgid "Command not implemented" msgstr "" -#: ipalib/errors.py:823 +#: ipalib/errors.py:829 msgid "Client is not configured. Run ipa-client-install." msgstr "" -#: ipalib/errors.py:832 +#: ipalib/errors.py:838 #, python-format msgid "Could not get %(name)s interactively" msgstr "" -#: ipalib/errors.py:860 ipalib/errors.py:1100 ipalib/errors.py:1194 -#: ipalib/errors.py:1559 ipalib/errors.py:1576 +#: ipalib/errors.py:866 ipalib/errors.py:1106 ipalib/errors.py:1200 +#: ipalib/errors.py:1581 ipalib/errors.py:1598 #, python-format msgid "%(reason)s" msgstr "" -#: ipalib/errors.py:876 +#: ipalib/errors.py:882 msgid "This entry already exists" msgstr "" -#: ipalib/errors.py:892 +#: ipalib/errors.py:898 msgid "You must enroll a host in order to create a host service" msgstr "" -#: ipalib/errors.py:908 +#: ipalib/errors.py:914 #, python-format msgid "" "Service principal is not of the form: service/fully-qualified host name: " "%(reason)s" msgstr "" -#: ipalib/errors.py:924 +#: ipalib/errors.py:930 msgid "" "The realm for the principal does not match the realm for this IPA server" msgstr "" -#: ipalib/errors.py:940 +#: ipalib/errors.py:946 msgid "This command requires root access" msgstr "" -#: ipalib/errors.py:956 +#: ipalib/errors.py:962 msgid "This is already a posix group" msgstr "" -#: ipalib/errors.py:972 +#: ipalib/errors.py:978 #, python-format msgid "Principal is not of the form user@REALM: %(principal)r" msgstr "" -#: ipalib/errors.py:988 +#: ipalib/errors.py:994 msgid "This entry is already enabled" msgstr "" -#: ipalib/errors.py:1004 +#: ipalib/errors.py:1010 msgid "This entry is already disabled" msgstr "" -#: ipalib/errors.py:1020 +#: ipalib/errors.py:1026 msgid "This entry cannot be enabled or disabled" msgstr "" -#: ipalib/errors.py:1036 +#: ipalib/errors.py:1042 msgid "This entry is not a member" msgstr "" -#: ipalib/errors.py:1052 +#: ipalib/errors.py:1058 msgid "A group may not be a member of itself" msgstr "" -#: ipalib/errors.py:1068 +#: ipalib/errors.py:1074 msgid "This entry is already a member" msgstr "" -#: ipalib/errors.py:1084 +#: ipalib/errors.py:1090 #, python-format msgid "Base64 decoding failed: %(reason)s" msgstr "" -#: ipalib/errors.py:1116 +#: ipalib/errors.py:1122 msgid "A group may not be added as a member of itself" msgstr "" -#: ipalib/errors.py:1132 +#: ipalib/errors.py:1138 msgid "The default users group cannot be removed" msgstr "" -#: ipalib/errors.py:1148 +#: ipalib/errors.py:1154 msgid "Host does not have corresponding DNS A record" msgstr "" -#: ipalib/errors.py:1163 +#: ipalib/errors.py:1169 msgid "Deleting a managed group is not allowed. It must be detached first." msgstr "" -#: ipalib/errors.py:1178 +#: ipalib/errors.py:1184 msgid "A managed group cannot have a password policy." msgstr "" -#: ipalib/errors.py:1210 +#: ipalib/errors.py:1216 #, python-format msgid "'%(entry)s' doesn't have a certificate." msgstr "" -#: ipalib/errors.py:1226 +#: ipalib/errors.py:1232 #, python-format msgid "Unable to create private group. A group '%(group)s' already exists." msgstr "" -#: ipalib/errors.py:1242 +#: ipalib/errors.py:1248 #, python-format msgid "" "A problem was encountered when verifying that all members were %(verb)s: " "%(exc)s" msgstr "" -#: ipalib/errors.py:1260 +#: ipalib/errors.py:1266 #, python-format msgid "%(attr)s does not contain '%(value)s'" msgstr "" -#: ipalib/errors.py:1277 +#: ipalib/errors.py:1283 #, python-format msgid "" "The search criteria was not specific enough. Expected 1 and found %(found)d." msgstr "" -#: ipalib/errors.py:1294 +#: ipalib/errors.py:1300 msgid "This group already allows external members" msgstr "" -#: ipalib/errors.py:1311 +#: ipalib/errors.py:1317 msgid "This group cannot be posix because it is external" msgstr "" -#: ipalib/errors.py:1328 +#: ipalib/errors.py:1334 msgid "This is already a posix group and cannot be converted to external one" msgstr "" -#: ipalib/errors.py:1351 +#: ipalib/errors.py:1357 #, python-format msgid "no command nor help topic %(topic)r" msgstr "" -#: ipalib/errors.py:1375 +#: ipalib/errors.py:1381 msgid "change collided with another change" msgstr "" -#: ipalib/errors.py:1391 +#: ipalib/errors.py:1397 msgid "no modifications to be performed" msgstr "" -#: ipalib/errors.py:1407 +#: ipalib/errors.py:1413 #, python-format msgid "%(desc)s: %(info)s" msgstr "" -#: ipalib/errors.py:1423 +#: ipalib/errors.py:1429 msgid "limits exceeded for this query" msgstr "" -#: ipalib/errors.py:1438 +#: ipalib/errors.py:1444 #, python-format msgid "%(info)s" msgstr "" -#: ipalib/errors.py:1453 +#: ipalib/errors.py:1459 msgid "modifying primary key is not allowed" msgstr "" -#: ipalib/errors.py:1469 +#: ipalib/errors.py:1475 #, python-format msgid "%(attr)s: Only one value allowed." msgstr "" -#: ipalib/errors.py:1485 +#: ipalib/errors.py:1491 #, python-format msgid "%(attr)s: Invalid syntax." msgstr "" -#: ipalib/errors.py:1501 +#: ipalib/errors.py:1507 #, python-format msgid "Bad search filter %(info)s" msgstr "" -#: ipalib/errors.py:1526 +#: ipalib/errors.py:1523 +msgid "Not allowed on non-leaf entry" +msgstr "" + +#: ipalib/errors.py:1548 #, python-format msgid "Certificate operation cannot be completed: %(error)s" msgstr "" -#: ipalib/errors.py:1542 +#: ipalib/errors.py:1564 #, python-format msgid "Certificate format error: %(error)s" msgstr "" -#: ipalib/errors.py:1593 +#: ipalib/errors.py:1615 msgid "Already registered" msgstr "" -#: ipalib/errors.py:1609 +#: ipalib/errors.py:1631 msgid "Not registered yet" msgstr "" -#: ipalib/errors.py:1625 +#: ipalib/errors.py:1647 #, python-format msgid "%(key)s cannot be deleted because %(label)s %(dependent)s requires it" msgstr "" -#: ipalib/errors.py:1641 +#: ipalib/errors.py:1663 #, 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:1657 +#: ipalib/errors.py:1679 #, python-format -msgid "%(label)s %(key)s cannot be deleted: %(reason)s" +msgid "%(label)s %(key)s cannot be deleted/modified: %(reason)s" msgstr "" #: ipalib/frontend.py:411 @@ -590,12 +594,17 @@ msgstr "" msgid "The character '%(char)r' is not allowed." msgstr "" -#: ipalib/parameters.py:1600 +#: ipalib/parameters.py:1605 +#, python-format +msgid "must be '%(value)s'" +msgstr "" + +#: ipalib/parameters.py:1608 #, python-format -msgid "must be one of %(values)r" +msgid "must be one of %(values)s" msgstr "" -#: ipalib/parameters.py:1842 +#: ipalib/parameters.py:1847 msgid "incomplete time value" msgstr "" @@ -798,7 +807,8 @@ msgid "" "Auto Membership Rule.\n" "\n" "Bring clarity to the membership of hosts and users by configuring inclusive\n" -"or exclusive regex paterns, you can automatically assign a new entries into\n" +"or exclusive regex patterns, you can automatically assign a new entries " +"into\n" "a group or hostgroup based upon attribute information.\n" "\n" "A rule is directly associated with a group by name, so you cannot create\n" @@ -918,11 +928,11 @@ msgid "Auto Membership Rule" msgstr "" #: ipalib/plugins/automember.py:176 ipalib/plugins/automount.py:579 -#: ipalib/plugins/group.py:123 ipalib/plugins/hbacrule.py:184 +#: ipalib/plugins/group.py:152 ipalib/plugins/hbacrule.py:184 #: ipalib/plugins/hbacsvc.py:79 ipalib/plugins/hbacsvcgroup.py:77 #: ipalib/plugins/host.py:259 ipalib/plugins/hostgroup.py:90 #: ipalib/plugins/netgroup.py:122 ipalib/plugins/privilege.py:73 -#: ipalib/plugins/role.py:92 ipalib/plugins/selinuxusermap.py:177 +#: ipalib/plugins/role.py:92 ipalib/plugins/selinuxusermap.py:184 #: ipalib/plugins/sudocmd.py:76 ipalib/plugins/sudocmdgroup.py:78 #: ipalib/plugins/sudorule.py:111 msgid "Description" @@ -1727,123 +1737,123 @@ msgstr "" msgid "attribute is not configurable" msgstr "" -#: ipalib/plugins/baseldap.py:909 +#: ipalib/plugins/baseldap.py:919 msgid "No such attribute on this entry" msgstr "" -#: ipalib/plugins/baseldap.py:1168 +#: ipalib/plugins/baseldap.py:1178 msgid "Continuous mode: Don't stop on errors." msgstr "" -#: ipalib/plugins/baseldap.py:1193 ipalib/plugins/baseldap.py:1260 +#: ipalib/plugins/baseldap.py:1203 ipalib/plugins/baseldap.py:1270 #: ipalib/plugins/internal.py:500 msgid "Rights" msgstr "" -#: ipalib/plugins/baseldap.py:1194 ipalib/plugins/baseldap.py:1261 +#: ipalib/plugins/baseldap.py:1204 ipalib/plugins/baseldap.py:1271 msgid "" "Display the access rights of this entry (requires --all). See ipa man page " "for details." msgstr "" -#: ipalib/plugins/baseldap.py:1270 +#: ipalib/plugins/baseldap.py:1280 msgid "Rename" msgstr "" -#: ipalib/plugins/baseldap.py:1271 +#: ipalib/plugins/baseldap.py:1281 #, python-format msgid "Rename the %(ldap_obj_name)s object" msgstr "" -#: ipalib/plugins/baseldap.py:1349 +#: ipalib/plugins/baseldap.py:1359 msgid "the entry was deleted while being modified" msgstr "" -#: ipalib/plugins/baseldap.py:1467 ipalib/plugins/baseldap.py:1930 +#: ipalib/plugins/baseldap.py:1483 ipalib/plugins/baseldap.py:1946 #, python-format msgid "comma-separated list of %s" msgstr "" -#: ipalib/plugins/baseldap.py:1479 +#: ipalib/plugins/baseldap.py:1495 #, python-format msgid "member %s" msgstr "" -#: ipalib/plugins/baseldap.py:1509 ipalib/plugins/baseldap.py:1955 +#: ipalib/plugins/baseldap.py:1525 ipalib/plugins/baseldap.py:1971 #, python-format msgid "comma-separated list of %s to add" msgstr "" -#: ipalib/plugins/baseldap.py:1517 ipalib/plugins/baseldap.py:1967 +#: ipalib/plugins/baseldap.py:1533 ipalib/plugins/baseldap.py:1983 #: 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:1521 ipalib/plugins/baseldap.py:1971 +#: ipalib/plugins/baseldap.py:1537 ipalib/plugins/baseldap.py:1987 msgid "Number of members added" msgstr "" -#: ipalib/plugins/baseldap.py:1605 ipalib/plugins/baseldap.py:2057 +#: ipalib/plugins/baseldap.py:1621 ipalib/plugins/baseldap.py:2073 #, python-format msgid "comma-separated list of %s to remove" msgstr "" -#: ipalib/plugins/baseldap.py:1612 ipalib/plugins/baseldap.py:2069 +#: ipalib/plugins/baseldap.py:1628 ipalib/plugins/baseldap.py:2085 msgid "Members that could not be removed" msgstr "" -#: ipalib/plugins/baseldap.py:1616 ipalib/plugins/baseldap.py:2073 +#: ipalib/plugins/baseldap.py:1632 ipalib/plugins/baseldap.py:2089 msgid "Number of members removed" msgstr "" -#: ipalib/plugins/baseldap.py:1702 +#: ipalib/plugins/baseldap.py:1718 msgid "Primary key only" msgstr "" -#: ipalib/plugins/baseldap.py:1703 +#: ipalib/plugins/baseldap.py:1719 #, python-format msgid "Results should contain primary key attribute only (\"%s\")" msgstr "" -#: ipalib/plugins/baseldap.py:1711 +#: ipalib/plugins/baseldap.py:1727 #, python-format msgid "" "Search for %(searched_object)s with these %(relationship)s %(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1712 +#: ipalib/plugins/baseldap.py:1728 #, python-format msgid "" "Search for %(searched_object)s without these %(relationship)s " "%(ldap_object)s." msgstr "" -#: ipalib/plugins/baseldap.py:1721 +#: ipalib/plugins/baseldap.py:1737 msgid "Time Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1722 +#: ipalib/plugins/baseldap.py:1738 msgid "Time limit of search in seconds" msgstr "" -#: ipalib/plugins/baseldap.py:1728 ipalib/plugins/hbactest.py:214 +#: ipalib/plugins/baseldap.py:1744 ipalib/plugins/hbactest.py:214 msgid "Size Limit" msgstr "" -#: ipalib/plugins/baseldap.py:1729 +#: ipalib/plugins/baseldap.py:1745 msgid "Maximum number of entries returned" msgstr "" -#: ipalib/plugins/baseldap.py:1742 +#: ipalib/plugins/baseldap.py:1758 msgid "A string searched in all relevant object attributes" msgstr "" -#: ipalib/plugins/baseldap.py:2020 +#: ipalib/plugins/baseldap.py:2036 msgid "added" msgstr "" -#: ipalib/plugins/baseldap.py:2122 +#: ipalib/plugins/baseldap.py:2138 msgid "removed" msgstr "" @@ -1936,7 +1946,7 @@ msgstr "" msgid "CSR" msgstr "" -#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:242 +#: ipalib/plugins/cert.py:220 ipalib/plugins/service.py:246 msgid "Principal" msgstr "" @@ -1950,37 +1960,37 @@ 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:249 +#: ipalib/plugins/internal.py:392 ipalib/plugins/service.py:253 msgid "Certificate" msgstr "" #: ipalib/plugins/cert.py:239 ipalib/plugins/cert.py:446 -#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:94 +#: ipalib/plugins/host.py:159 ipalib/plugins/service.py:97 msgid "Subject" msgstr "" #: ipalib/plugins/cert.py:242 ipalib/plugins/cert.py:449 -#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:103 +#: ipalib/plugins/host.py:168 ipalib/plugins/service.py:106 msgid "Issuer" msgstr "" #: ipalib/plugins/cert.py:245 ipalib/plugins/cert.py:452 -#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:106 +#: ipalib/plugins/host.py:171 ipalib/plugins/service.py:109 msgid "Not Before" msgstr "" #: ipalib/plugins/cert.py:248 ipalib/plugins/cert.py:455 -#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:109 +#: ipalib/plugins/host.py:174 ipalib/plugins/service.py:112 msgid "Not After" msgstr "" #: ipalib/plugins/cert.py:251 ipalib/plugins/cert.py:458 -#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:112 +#: ipalib/plugins/host.py:177 ipalib/plugins/service.py:115 msgid "Fingerprint (MD5)" msgstr "" #: ipalib/plugins/cert.py:254 ipalib/plugins/cert.py:461 -#: ipalib/plugins/host.py:180 ipalib/plugins/service.py:115 +#: ipalib/plugins/host.py:180 ipalib/plugins/service.py:118 msgid "Fingerprint (SHA1)" msgstr "" @@ -2051,7 +2061,7 @@ msgid "Retrieve an existing certificate." msgstr "" #: ipalib/plugins/cert.py:464 ipalib/plugins/host.py:183 -#: ipalib/plugins/service.py:118 +#: ipalib/plugins/service.py:121 msgid "Revocation reason" msgstr "" @@ -2095,7 +2105,7 @@ msgstr "" msgid "Error" msgstr "" -#: ipalib/plugins/config.py:31 +#: ipalib/plugins/config.py:32 msgid "" "\n" "Server configuration\n" @@ -2145,174 +2155,183 @@ msgid "" "s0:c0.c1023$staff_u:s0-s0:c0.c1023$unconfined_u:s0-s0:c0.c1023'\n" msgstr "" -#: ipalib/plugins/config.py:79 +#: ipalib/plugins/config.py:80 msgid "searchtimelimit must be -1 or > 1." msgstr "" -#: ipalib/plugins/config.py:86 +#: ipalib/plugins/config.py:87 msgid "configuration options" msgstr "" -#: ipalib/plugins/config.py:96 ipalib/plugins/config.py:97 +#: ipalib/plugins/config.py:97 ipalib/plugins/config.py:98 msgid "Configuration" msgstr "" -#: ipalib/plugins/config.py:102 +#: ipalib/plugins/config.py:103 msgid "Maximum username length" msgstr "" -#: ipalib/plugins/config.py:107 +#: ipalib/plugins/config.py:108 msgid "Home directory base" msgstr "" -#: ipalib/plugins/config.py:108 +#: ipalib/plugins/config.py:109 msgid "Default location of home directories" msgstr "" -#: ipalib/plugins/config.py:112 +#: ipalib/plugins/config.py:113 msgid "Default shell" msgstr "" -#: ipalib/plugins/config.py:113 +#: ipalib/plugins/config.py:114 msgid "Default shell for new users" msgstr "" -#: ipalib/plugins/config.py:117 +#: ipalib/plugins/config.py:118 msgid "Default users group" msgstr "" -#: ipalib/plugins/config.py:118 +#: ipalib/plugins/config.py:119 msgid "Default group for new users" msgstr "" -#: ipalib/plugins/config.py:122 ipalib/plugins/config.py:123 +#: ipalib/plugins/config.py:123 ipalib/plugins/config.py:124 msgid "Default e-mail domain" msgstr "" -#: ipalib/plugins/config.py:127 +#: ipalib/plugins/config.py:128 msgid "Search time limit" msgstr "" -#: ipalib/plugins/config.py:128 +#: ipalib/plugins/config.py:129 msgid "" "Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)" msgstr "" -#: ipalib/plugins/config.py:133 +#: ipalib/plugins/config.py:134 msgid "Search size limit" msgstr "" -#: ipalib/plugins/config.py:134 +#: ipalib/plugins/config.py:135 msgid "Maximum number of records to search (-1 is unlimited)" msgstr "" -#: ipalib/plugins/config.py:139 +#: ipalib/plugins/config.py:140 msgid "User search fields" msgstr "" -#: ipalib/plugins/config.py:140 +#: ipalib/plugins/config.py:141 msgid "A comma-separated list of fields to search in when searching for users" msgstr "" -#: ipalib/plugins/config.py:145 +#: ipalib/plugins/config.py:146 msgid "A comma-separated list of fields to search in when searching for groups" msgstr "" -#: ipalib/plugins/config.py:149 ipalib/plugins/config.py:150 +#: ipalib/plugins/config.py:150 ipalib/plugins/config.py:151 msgid "Enable migration mode" msgstr "" -#: ipalib/plugins/config.py:154 +#: ipalib/plugins/config.py:155 msgid "Certificate Subject base" msgstr "" -#: ipalib/plugins/config.py:155 +#: ipalib/plugins/config.py:156 msgid "Base for certificate subjects (OU=Test,O=Example)" msgstr "" -#: ipalib/plugins/config.py:160 +#: ipalib/plugins/config.py:161 msgid "Default group objectclasses" msgstr "" -#: ipalib/plugins/config.py:161 +#: ipalib/plugins/config.py:162 msgid "Default group objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/config.py:166 +#: ipalib/plugins/config.py:167 msgid "Default user objectclasses" msgstr "" -#: ipalib/plugins/config.py:167 +#: ipalib/plugins/config.py:168 msgid "Default user objectclasses (comma-separated list)" msgstr "" -#: ipalib/plugins/config.py:172 +#: ipalib/plugins/config.py:173 msgid "Password Expiration Notification (days)" msgstr "" -#: ipalib/plugins/config.py:173 +#: ipalib/plugins/config.py:174 msgid "Number of days's notice of impending password expiration" msgstr "" -#: ipalib/plugins/config.py:178 +#: ipalib/plugins/config.py:179 msgid "Password plugin features" msgstr "" -#: ipalib/plugins/config.py:179 +#: ipalib/plugins/config.py:180 msgid "Extra hashes to generate in password plug-in" msgstr "" -#: ipalib/plugins/config.py:185 +#: ipalib/plugins/config.py:186 msgid "SELinux user map order" msgstr "" -#: ipalib/plugins/config.py:186 +#: ipalib/plugins/config.py:187 msgid "Order in increasing priority of SELinux users, delimited by $" msgstr "" -#: ipalib/plugins/config.py:189 +#: ipalib/plugins/config.py:190 msgid "Default SELinux user" msgstr "" -#: ipalib/plugins/config.py:190 +#: ipalib/plugins/config.py:191 msgid "Default SELinux user when no match is found in SELinux map rule" msgstr "" -#: ipalib/plugins/config.py:194 ipalib/plugins/service.py:255 -msgid "PAC type" +#: ipalib/plugins/config.py:195 +msgid "Default PAC types" msgstr "" -#: ipalib/plugins/config.py:195 -msgid "Default types of PAC for new services" +#: ipalib/plugins/config.py:196 +msgid "Default types of PAC supported for services" msgstr "" -#: ipalib/plugins/config.py:208 +#: ipalib/plugins/config.py:209 msgid "Modify configuration options." msgstr "" -#: ipalib/plugins/config.py:217 +#: ipalib/plugins/config.py:218 msgid "The group doesn't exist" msgstr "" -#: ipalib/plugins/config.py:232 +#: ipalib/plugins/config.py:233 #, python-format msgid "attribute \"%s\" not allowed" msgstr "" -#: ipalib/plugins/config.py:240 +#: ipalib/plugins/config.py:241 msgid "May not be empty" msgstr "" -#: ipalib/plugins/config.py:258 +#: ipalib/plugins/config.py:259 #, python-format msgid "%(obj)s default attribute %(attr)s would not be allowed!" msgstr "" -#: ipalib/plugins/config.py:289 +#: ipalib/plugins/config.py:291 +msgid "A list of SELinux users delimited by $ expected" +msgstr "" + +#: ipalib/plugins/config.py:295 +#, python-format +msgid "SELinux user '%(user)s' is not valid: %(error)s" +msgstr "" + +#: ipalib/plugins/config.py:307 msgid "SELinux user map default user not in order list" msgstr "" -#: ipalib/plugins/config.py:297 +#: ipalib/plugins/config.py:315 msgid "Show the current configuration." msgstr "" @@ -2421,7 +2440,7 @@ msgstr[1] "" msgid "Display information about a delegation." msgstr "" -#: ipalib/plugins/dns.py:39 +#: ipalib/plugins/dns.py:40 msgid "" "\n" "Domain Name System (DNS)\n" @@ -2455,7 +2474,7 @@ msgid "" "modifying an existing entry, new RR specific options can be used to change\n" "one part of a DNS record, where the standard option for raw value is used\n" "to specify the modified value. The following example demonstrates\n" -"a modification of MX record preference form 0 to 1 in a record without\n" +"a modification of MX record preference from 0 to 1 in a record without\n" "modifying the exchanger:\n" "ipa dnsrecord-mod --mx-rec=\"0 mx.example.com.\" --mx-preference=1\n" "\n" @@ -2518,7 +2537,7 @@ msgid "" " Add new A record for www.example.com. Create a reverse record in " "appropriate\n" " reverse zone as well. In this case a PTR record \"2\" pointing to www." -"example.com.\n" +"example.com\n" " will be created in zone 15.142.80.in-addr.arpa.\n" " ipa dnsrecord-add example.com www --a-rec=80.142.15.2 --a-create-reverse\n" "\n" @@ -2587,7 +2606,7 @@ msgid "" " Show records for resource www in zone example.com\n" " ipa dnsrecord-show example.com www\n" "\n" -" Forward all request for a zone external.com to another nameserver using\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" " not answered it will use global resolvers):\n" @@ -2620,243 +2639,243 @@ msgid "" " ipa dnsconfig-mod --forwarder=10.0.0.1\n" msgstr "" -#: ipalib/plugins/dns.py:272 +#: ipalib/plugins/dns.py:281 #, python-format msgid "invalid IP address version (is %(value)d, must be %(required_value)d)!" msgstr "" -#: ipalib/plugins/dns.py:275 +#: ipalib/plugins/dns.py:284 msgid "invalid IP address format" msgstr "" -#: ipalib/plugins/dns.py:288 +#: ipalib/plugins/dns.py:297 msgid "invalid IP network format" msgstr "" -#: ipalib/plugins/dns.py:297 +#: ipalib/plugins/dns.py:306 msgid "each ACL element must be terminated with a semicolon" msgstr "" -#: ipalib/plugins/dns.py:314 +#: ipalib/plugins/dns.py:323 msgid "invalid address format" msgstr "" -#: ipalib/plugins/dns.py:356 ipalib/plugins/dns.py:399 +#: ipalib/plugins/dns.py:365 ipalib/plugins/dns.py:408 #, python-format msgid "invalid domain-name: %s" msgstr "" -#: ipalib/plugins/dns.py:385 +#: ipalib/plugins/dns.py:394 #, python-format msgid "%(port)s is not a valid port" msgstr "" -#: ipalib/plugins/dns.py:461 +#: ipalib/plugins/dns.py:470 #, python-format msgid "DNS reverse zone for IP address %(addr)s not found" msgstr "" -#: ipalib/plugins/dns.py:473 +#: ipalib/plugins/dns.py:482 #, python-format msgid "DNS zone %(zone)s not found" msgstr "" -#: ipalib/plugins/dns.py:487 +#: ipalib/plugins/dns.py:496 #, python-format msgid "IP address %(ip)s is already assigned in domain %(domain)s." msgstr "" -#: ipalib/plugins/dns.py:500 +#: ipalib/plugins/dns.py:509 #, python-format msgid "" "Reverse record for IP address %(ip)s already exists in reverse zone %(zone)s." msgstr "" -#: ipalib/plugins/dns.py:536 +#: ipalib/plugins/dns.py:545 #, python-format msgid "%s record" msgstr "" -#: ipalib/plugins/dns.py:538 +#: ipalib/plugins/dns.py:547 #, python-format msgid "Comma-separated list of raw %s records" msgstr "" -#: ipalib/plugins/dns.py:539 +#: ipalib/plugins/dns.py:548 #, python-format msgid "%s Record" msgstr "" -#: ipalib/plugins/dns.py:540 +#: ipalib/plugins/dns.py:549 #, python-format msgid "(see RFC %s for details)" msgstr "" -#: ipalib/plugins/dns.py:596 +#: ipalib/plugins/dns.py:605 #, python-format msgid "'%s' is a required part of DNS record" msgstr "" -#: ipalib/plugins/dns.py:603 +#: ipalib/plugins/dns.py:612 msgid "Invalid number of parts!" msgstr "" -#: ipalib/plugins/dns.py:658 +#: ipalib/plugins/dns.py:667 #, python-format msgid "DNS RR type \"%s\" is not supported by bind-dyndb-ldap plugin" msgstr "" -#: ipalib/plugins/dns.py:674 +#: ipalib/plugins/dns.py:683 #, python-format msgid "format must be specified as \"%(format)s\" %(rfcs)s" msgstr "" -#: ipalib/plugins/dns.py:809 +#: ipalib/plugins/dns.py:818 msgid "Create reverse" msgstr "" -#: ipalib/plugins/dns.py:810 +#: ipalib/plugins/dns.py:819 msgid "Create reverse record for this IP Address" msgstr "" -#: ipalib/plugins/dns.py:845 +#: ipalib/plugins/dns.py:854 #, python-format msgid "Cannot create reverse record for \"%(value)s\": %(exc)s" msgstr "" -#: ipalib/plugins/dns.py:854 ipalib/plugins/dns.py:877 +#: ipalib/plugins/dns.py:863 ipalib/plugins/dns.py:886 #: ipalib/plugins/host.py:390 msgid "IP Address" msgstr "" -#: ipalib/plugins/dns.py:863 ipalib/plugins/dns.py:1474 +#: ipalib/plugins/dns.py:872 ipalib/plugins/dns.py:1483 msgid "Record data" msgstr "" -#: ipalib/plugins/dns.py:886 +#: ipalib/plugins/dns.py:895 msgid "Subtype" msgstr "" -#: ipalib/plugins/dns.py:892 ipalib/plugins/dns.py:931 -#: ipalib/plugins/dns.py:1184 ipalib/plugins/dns.py:1281 -#: ipalib/plugins/dns.py:2785 +#: 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 msgid "Hostname" msgstr "" -#: ipalib/plugins/dns.py:906 +#: ipalib/plugins/dns.py:915 msgid "Certificate Type" msgstr "" -#: ipalib/plugins/dns.py:911 ipalib/plugins/dns.py:966 -#: ipalib/plugins/dns.py:1364 +#: ipalib/plugins/dns.py:920 ipalib/plugins/dns.py:975 +#: ipalib/plugins/dns.py:1373 msgid "Key Tag" msgstr "" -#: ipalib/plugins/dns.py:916 ipalib/plugins/dns.py:971 -#: ipalib/plugins/dns.py:1005 ipalib/plugins/dns.py:1342 -#: ipalib/plugins/dns.py:1390 +#: 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 msgid "Algorithm" msgstr "" -#: ipalib/plugins/dns.py:921 +#: ipalib/plugins/dns.py:930 msgid "Certificate/CRL" msgstr "" -#: ipalib/plugins/dns.py:932 +#: ipalib/plugins/dns.py:941 msgid "A hostname which this alias hostname points to" msgstr "" -#: ipalib/plugins/dns.py:952 ipalib/plugins/dns.py:1318 +#: ipalib/plugins/dns.py:961 ipalib/plugins/dns.py:1327 #: ipalib/plugins/internal.py:501 msgid "Target" msgstr "" -#: ipalib/plugins/dns.py:976 +#: ipalib/plugins/dns.py:985 msgid "Digest Type" msgstr "" -#: ipalib/plugins/dns.py:981 +#: ipalib/plugins/dns.py:990 msgid "Digest" msgstr "" -#: ipalib/plugins/dns.py:995 ipalib/plugins/dns.py:1260 +#: ipalib/plugins/dns.py:1004 ipalib/plugins/dns.py:1269 msgid "Flags" msgstr "" -#: ipalib/plugins/dns.py:1000 +#: ipalib/plugins/dns.py:1009 msgid "Protocol" msgstr "" -#: ipalib/plugins/dns.py:1010 +#: ipalib/plugins/dns.py:1019 msgid "Public Key" msgstr "" -#: ipalib/plugins/dns.py:1024 ipalib/plugins/dns.py:1165 -#: ipalib/plugins/dns.py:1254 +#: ipalib/plugins/dns.py:1033 ipalib/plugins/dns.py:1174 +#: ipalib/plugins/dns.py:1263 msgid "Preference" msgstr "" -#: ipalib/plugins/dns.py:1025 ipalib/plugins/dns.py:1166 +#: ipalib/plugins/dns.py:1034 ipalib/plugins/dns.py:1175 msgid "Preference given to this exchanger. Lower values are more preferred" msgstr "" -#: ipalib/plugins/dns.py:1031 ipalib/plugins/dns.py:1172 +#: ipalib/plugins/dns.py:1040 ipalib/plugins/dns.py:1181 msgid "Exchanger" msgstr "" -#: ipalib/plugins/dns.py:1032 +#: ipalib/plugins/dns.py:1041 msgid "A host willing to act as a key exchanger" msgstr "" -#: ipalib/plugins/dns.py:1041 +#: ipalib/plugins/dns.py:1050 msgid "Degrees Latitude" msgstr "" -#: ipalib/plugins/dns.py:1046 +#: ipalib/plugins/dns.py:1055 msgid "Minutes Latitude" msgstr "" -#: ipalib/plugins/dns.py:1051 +#: ipalib/plugins/dns.py:1060 msgid "Seconds Latitude" msgstr "" -#: ipalib/plugins/dns.py:1057 +#: ipalib/plugins/dns.py:1066 msgid "Direction Latitude" msgstr "" -#: ipalib/plugins/dns.py:1061 +#: ipalib/plugins/dns.py:1070 msgid "Degrees Longitude" msgstr "" -#: ipalib/plugins/dns.py:1066 +#: ipalib/plugins/dns.py:1075 msgid "Minutes Longitude" msgstr "" -#: ipalib/plugins/dns.py:1071 +#: ipalib/plugins/dns.py:1080 msgid "Seconds Longitude" msgstr "" -#: ipalib/plugins/dns.py:1077 +#: ipalib/plugins/dns.py:1086 msgid "Direction Longitude" msgstr "" -#: ipalib/plugins/dns.py:1081 +#: ipalib/plugins/dns.py:1090 msgid "Altitude" msgstr "" -#: ipalib/plugins/dns.py:1087 +#: ipalib/plugins/dns.py:1096 msgid "Size" msgstr "" -#: ipalib/plugins/dns.py:1093 +#: ipalib/plugins/dns.py:1102 msgid "Horizontal Precision" msgstr "" -#: ipalib/plugins/dns.py:1099 +#: ipalib/plugins/dns.py:1108 msgid "Vertical Precision" msgstr "" -#: ipalib/plugins/dns.py:1106 +#: ipalib/plugins/dns.py:1115 msgid "" "format must be specified as\n" " \"d1 [m1 [s1]] {\"N\"|\"S\"} d2 [m2 [s2]] {\"E\"|\"W\"} alt[\"m\"] [siz" @@ -2871,499 +2890,499 @@ msgid "" " See RFC 1876 for details" msgstr "" -#: ipalib/plugins/dns.py:1155 +#: ipalib/plugins/dns.py:1164 #, python-format msgid "'%(required)s' must not be empty when '%(name)s' is set" msgstr "" -#: ipalib/plugins/dns.py:1173 +#: ipalib/plugins/dns.py:1182 msgid "A host willing to act as a mail exchanger" msgstr "" -#: ipalib/plugins/dns.py:1191 +#: ipalib/plugins/dns.py:1200 msgid "" "format must be specified as \"NEXT TYPE1 [TYPE2 [TYPE3 [...]]]\" (see RFC " "4034 for details)" msgstr "" -#: ipalib/plugins/dns.py:1198 +#: ipalib/plugins/dns.py:1207 msgid "Next Domain Name" msgstr "" -#: ipalib/plugins/dns.py:1201 +#: ipalib/plugins/dns.py:1210 msgid "Type Map" msgstr "" -#: ipalib/plugins/dns.py:1241 +#: ipalib/plugins/dns.py:1250 msgid "flags must be one of \"S\", \"A\", \"U\", or \"P\"" msgstr "" -#: ipalib/plugins/dns.py:1249 +#: ipalib/plugins/dns.py:1258 msgid "Order" msgstr "" -#: ipalib/plugins/dns.py:1264 ipalib/plugins/hbactest.py:194 -#: ipalib/plugins/internal.py:540 ipalib/plugins/service.py:237 +#: ipalib/plugins/dns.py:1273 ipalib/plugins/hbactest.py:194 +#: ipalib/plugins/internal.py:540 ipalib/plugins/service.py:241 msgid "Service" msgstr "" -#: ipalib/plugins/dns.py:1267 +#: ipalib/plugins/dns.py:1276 msgid "Regular Expression" msgstr "" -#: ipalib/plugins/dns.py:1270 +#: ipalib/plugins/dns.py:1279 msgid "Replacement" msgstr "" -#: ipalib/plugins/dns.py:1282 +#: ipalib/plugins/dns.py:1291 msgid "The hostname this reverse record points to" msgstr "" -#: ipalib/plugins/dns.py:1302 ipalib/plugins/pwpolicy.py:265 +#: ipalib/plugins/dns.py:1311 ipalib/plugins/pwpolicy.py:265 msgid "Priority" msgstr "" -#: ipalib/plugins/dns.py:1307 +#: ipalib/plugins/dns.py:1316 msgid "Weight" msgstr "" -#: ipalib/plugins/dns.py:1312 +#: ipalib/plugins/dns.py:1321 msgid "Port" msgstr "" -#: ipalib/plugins/dns.py:1319 +#: ipalib/plugins/dns.py:1328 msgid "" "The domain name of the target host or '.' if the service is decidedly not " "available at this domain" msgstr "" -#: ipalib/plugins/dns.py:1328 +#: ipalib/plugins/dns.py:1337 msgid "the value does not follow \"YYYYMMDDHHMMSS\" time format" msgstr "" -#: ipalib/plugins/dns.py:1338 +#: ipalib/plugins/dns.py:1347 msgid "Type Covered" msgstr "" -#: ipalib/plugins/dns.py:1347 +#: ipalib/plugins/dns.py:1356 msgid "Labels" msgstr "" -#: ipalib/plugins/dns.py:1352 +#: ipalib/plugins/dns.py:1361 msgid "Original TTL" msgstr "" -#: ipalib/plugins/dns.py:1357 +#: ipalib/plugins/dns.py:1366 msgid "Signature Expiration" msgstr "" -#: ipalib/plugins/dns.py:1361 +#: ipalib/plugins/dns.py:1370 msgid "Signature Inception" msgstr "" -#: ipalib/plugins/dns.py:1369 +#: ipalib/plugins/dns.py:1378 msgid "Signer's Name" msgstr "" -#: ipalib/plugins/dns.py:1372 +#: ipalib/plugins/dns.py:1381 msgid "Signature" msgstr "" -#: ipalib/plugins/dns.py:1395 +#: ipalib/plugins/dns.py:1404 msgid "Fingerprint Type" msgstr "" -#: ipalib/plugins/dns.py:1400 +#: ipalib/plugins/dns.py:1409 msgid "Fingerprint" msgstr "" -#: ipalib/plugins/dns.py:1421 +#: ipalib/plugins/dns.py:1430 msgid "Text Data" msgstr "" -#: ipalib/plugins/dns.py:1468 +#: ipalib/plugins/dns.py:1477 msgid "Records" msgstr "" -#: ipalib/plugins/dns.py:1471 +#: ipalib/plugins/dns.py:1480 msgid "Record type" msgstr "" -#: ipalib/plugins/dns.py:1515 +#: ipalib/plugins/dns.py:1511 #, python-format msgid "Nameserver '%(host)s' does not have a corresponding A/AAAA record" msgstr "" -#: ipalib/plugins/dns.py:1533 +#: ipalib/plugins/dns.py:1529 msgid "Managedby permission" msgstr "" -#: ipalib/plugins/dns.py:1542 +#: ipalib/plugins/dns.py:1538 msgid "DNS zone" msgstr "" -#: ipalib/plugins/dns.py:1543 +#: ipalib/plugins/dns.py:1539 msgid "DNS zones" msgstr "" -#: ipalib/plugins/dns.py:1552 +#: ipalib/plugins/dns.py:1548 msgid "DNS Zones" msgstr "" -#: ipalib/plugins/dns.py:1553 +#: ipalib/plugins/dns.py:1549 msgid "DNS Zone" msgstr "" -#: ipalib/plugins/dns.py:1559 +#: ipalib/plugins/dns.py:1555 msgid "Zone name" msgstr "" -#: ipalib/plugins/dns.py:1560 +#: ipalib/plugins/dns.py:1556 msgid "Zone name (FQDN)" msgstr "" -#: ipalib/plugins/dns.py:1566 +#: ipalib/plugins/dns.py:1562 msgid "Reverse zone IP network" msgstr "" -#: ipalib/plugins/dns.py:1567 +#: ipalib/plugins/dns.py:1563 msgid "IP network to create reverse zone name from" msgstr "" -#: ipalib/plugins/dns.py:1572 +#: ipalib/plugins/dns.py:1568 msgid "Authoritative nameserver" msgstr "" -#: ipalib/plugins/dns.py:1573 +#: ipalib/plugins/dns.py:1569 msgid "Authoritative nameserver domain name" msgstr "" -#: ipalib/plugins/dns.py:1578 ipalib/plugins/dns.py:1579 +#: ipalib/plugins/dns.py:1574 ipalib/plugins/dns.py:1575 msgid "Administrator e-mail address" msgstr "" -#: ipalib/plugins/dns.py:1585 +#: ipalib/plugins/dns.py:1581 msgid "SOA serial" msgstr "" -#: ipalib/plugins/dns.py:1586 +#: ipalib/plugins/dns.py:1582 msgid "SOA record serial number" msgstr "" -#: ipalib/plugins/dns.py:1594 +#: ipalib/plugins/dns.py:1590 msgid "SOA refresh" msgstr "" -#: ipalib/plugins/dns.py:1595 +#: ipalib/plugins/dns.py:1591 msgid "SOA record refresh time" msgstr "" -#: ipalib/plugins/dns.py:1603 +#: ipalib/plugins/dns.py:1599 msgid "SOA retry" msgstr "" -#: ipalib/plugins/dns.py:1604 +#: ipalib/plugins/dns.py:1600 msgid "SOA record retry time" msgstr "" -#: ipalib/plugins/dns.py:1612 +#: ipalib/plugins/dns.py:1608 msgid "SOA expire" msgstr "" -#: ipalib/plugins/dns.py:1613 +#: ipalib/plugins/dns.py:1609 msgid "SOA record expire time" msgstr "" -#: ipalib/plugins/dns.py:1621 +#: ipalib/plugins/dns.py:1617 msgid "SOA minimum" msgstr "" -#: ipalib/plugins/dns.py:1622 +#: ipalib/plugins/dns.py:1618 msgid "How long should negative responses be cached" msgstr "" -#: ipalib/plugins/dns.py:1630 +#: ipalib/plugins/dns.py:1626 msgid "SOA time to live" msgstr "" -#: ipalib/plugins/dns.py:1631 +#: ipalib/plugins/dns.py:1627 msgid "SOA record time to live" msgstr "" -#: ipalib/plugins/dns.py:1637 +#: ipalib/plugins/dns.py:1633 msgid "SOA class" msgstr "" -#: ipalib/plugins/dns.py:1638 +#: ipalib/plugins/dns.py:1634 msgid "SOA record class" msgstr "" -#: ipalib/plugins/dns.py:1643 ipalib/plugins/dns.py:1644 +#: ipalib/plugins/dns.py:1639 ipalib/plugins/dns.py:1640 msgid "BIND update policy" msgstr "" -#: ipalib/plugins/dns.py:1650 +#: ipalib/plugins/dns.py:1646 msgid "Active zone" msgstr "" -#: ipalib/plugins/dns.py:1651 +#: ipalib/plugins/dns.py:1647 msgid "Is zone active?" msgstr "" -#: ipalib/plugins/dns.py:1657 +#: ipalib/plugins/dns.py:1653 msgid "Dynamic update" msgstr "" -#: ipalib/plugins/dns.py:1658 +#: ipalib/plugins/dns.py:1654 msgid "Allow dynamic updates." msgstr "" -#: ipalib/plugins/dns.py:1667 +#: ipalib/plugins/dns.py:1663 msgid "Allow query" msgstr "" -#: ipalib/plugins/dns.py:1668 +#: ipalib/plugins/dns.py:1664 msgid "" "Semicolon separated list of IP addresses or networks which are allowed to " "issue queries" msgstr "" -#: ipalib/plugins/dns.py:1676 +#: ipalib/plugins/dns.py:1672 msgid "Allow transfer" msgstr "" -#: ipalib/plugins/dns.py:1677 +#: ipalib/plugins/dns.py:1673 msgid "" "Semicolon separated list of IP addresses or networks which are allowed to " "transfer the zone" msgstr "" -#: ipalib/plugins/dns.py:1684 +#: ipalib/plugins/dns.py:1680 msgid "Zone forwarders" msgstr "" -#: ipalib/plugins/dns.py:1685 +#: ipalib/plugins/dns.py:1681 msgid "" "A list of 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:1691 ipalib/plugins/dns.py:2855 +#: ipalib/plugins/dns.py:1687 ipalib/plugins/dns.py:2850 msgid "Forward policy" msgstr "" -#: ipalib/plugins/dns.py:1696 ipalib/plugins/dns.py:2860 +#: ipalib/plugins/dns.py:1692 ipalib/plugins/dns.py:2855 msgid "Allow PTR sync" msgstr "" -#: ipalib/plugins/dns.py:1697 +#: ipalib/plugins/dns.py:1693 msgid "" "Allow synchronization of forward (A, AAAA) and reverse (PTR) records in the " "zone" msgstr "" -#: ipalib/plugins/dns.py:1727 +#: ipalib/plugins/dns.py:1723 msgid "Create new DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1732 ipalib/plugins/dns.py:2214 +#: ipalib/plugins/dns.py:1728 ipalib/plugins/dns.py:2210 #: ipalib/plugins/host.py:382 ipalib/plugins/permission.py:297 -#: ipalib/plugins/service.py:273 +#: ipalib/plugins/service.py:293 msgid "Force" msgstr "" -#: ipalib/plugins/dns.py:1733 +#: ipalib/plugins/dns.py:1729 msgid "Force DNS zone creation even if nameserver not in DNS." msgstr "" -#: ipalib/plugins/dns.py:1736 +#: ipalib/plugins/dns.py:1732 msgid "Add the nameserver to DNS with this IP address" msgstr "" -#: ipalib/plugins/dns.py:1743 +#: ipalib/plugins/dns.py:1739 msgid "DNS is not configured" msgstr "" -#: ipalib/plugins/dns.py:1753 +#: ipalib/plugins/dns.py:1749 msgid "Nameserver address is not a fully qualified domain name" msgstr "" -#: ipalib/plugins/dns.py:1780 +#: ipalib/plugins/dns.py:1776 msgid "Delete DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1794 +#: ipalib/plugins/dns.py:1790 msgid "Modify DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1802 +#: ipalib/plugins/dns.py:1798 msgid "Search for DNS zones (SOA records)." msgstr "" -#: ipalib/plugins/dns.py:1826 +#: ipalib/plugins/dns.py:1822 msgid "Forward zones only" msgstr "" -#: ipalib/plugins/dns.py:1828 +#: ipalib/plugins/dns.py:1824 msgid "Search for forward zones only" msgstr "" -#: ipalib/plugins/dns.py:1848 +#: ipalib/plugins/dns.py:1844 msgid "Display information about a DNS zone (SOA record)." msgstr "" -#: ipalib/plugins/dns.py:1856 +#: ipalib/plugins/dns.py:1852 msgid "Disable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:1859 +#: ipalib/plugins/dns.py:1855 #, python-format msgid "Disabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1877 +#: ipalib/plugins/dns.py:1873 msgid "Enable DNS Zone." msgstr "" -#: ipalib/plugins/dns.py:1880 +#: ipalib/plugins/dns.py:1876 #, python-format msgid "Enabled DNS zone \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1897 +#: ipalib/plugins/dns.py:1893 msgid "Add a permission for per-zone access delegation." msgstr "" -#: ipalib/plugins/dns.py:1900 +#: ipalib/plugins/dns.py:1896 #, python-format msgid "Added system permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1933 +#: ipalib/plugins/dns.py:1929 msgid "Remove a permission for per-zone access delegation." msgstr "" -#: ipalib/plugins/dns.py:1936 +#: ipalib/plugins/dns.py:1932 #, python-format msgid "Removed system permission \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:1967 +#: ipalib/plugins/dns.py:1963 msgid "DNS resource record" msgstr "" -#: ipalib/plugins/dns.py:1968 +#: ipalib/plugins/dns.py:1964 msgid "DNS resource records" msgstr "" -#: ipalib/plugins/dns.py:1973 +#: ipalib/plugins/dns.py:1969 msgid "DNS Resource Records" msgstr "" -#: ipalib/plugins/dns.py:1974 +#: ipalib/plugins/dns.py:1970 msgid "DNS Resource Record" msgstr "" -#: ipalib/plugins/dns.py:1980 ipalib/plugins/dns.py:1981 +#: ipalib/plugins/dns.py:1976 ipalib/plugins/dns.py:1977 msgid "Record name" msgstr "" -#: ipalib/plugins/dns.py:1986 ipalib/plugins/dns.py:1987 +#: ipalib/plugins/dns.py:1982 ipalib/plugins/dns.py:1983 msgid "Time to live" msgstr "" -#: ipalib/plugins/dns.py:1991 +#: ipalib/plugins/dns.py:1987 msgid "Class" msgstr "" -#: ipalib/plugins/dns.py:1992 +#: ipalib/plugins/dns.py:1988 msgid "DNS class" msgstr "" -#: ipalib/plugins/dns.py:1998 +#: ipalib/plugins/dns.py:1994 msgid "Structured" msgstr "" -#: ipalib/plugins/dns.py:1999 +#: ipalib/plugins/dns.py:1995 msgid "Parse all raw DNS records and return them in a structured way" msgstr "" -#: ipalib/plugins/dns.py:2030 +#: ipalib/plugins/dns.py:2026 #, 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:2036 +#: ipalib/plugins/dns.py:2032 #, python-format msgid "" "Reverse zone %(name)s requires exactly %(count)d IP address components, " "%(user_count)d given" msgstr "" -#: ipalib/plugins/dns.py:2201 +#: ipalib/plugins/dns.py:2197 msgid "" "CNAME record is not allowed to coexist with any other records except PTR" msgstr "" -#: ipalib/plugins/dns.py:2208 +#: ipalib/plugins/dns.py:2204 msgid "Add new DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:2216 +#: ipalib/plugins/dns.py:2212 msgid "force NS record creation even if its hostname is not in DNS" msgstr "" -#: ipalib/plugins/dns.py:2253 +#: ipalib/plugins/dns.py:2249 msgid "Please choose a type of DNS resource record to be added" msgstr "" -#: ipalib/plugins/dns.py:2254 +#: ipalib/plugins/dns.py:2250 #, python-format msgid "The most common types for this type of zone are: %s\n" msgstr "" -#: ipalib/plugins/dns.py:2259 +#: ipalib/plugins/dns.py:2255 msgid "DNS resource record type" msgstr "" -#: ipalib/plugins/dns.py:2275 +#: ipalib/plugins/dns.py:2271 #, python-format msgid "Invalid or unsupported type. Allowed values are: %s" msgstr "" -#: ipalib/plugins/dns.py:2303 +#: ipalib/plugins/dns.py:2299 #, python-format msgid "Raw value of a DNS record was already set by \"%(name)s\" option" msgstr "" -#: ipalib/plugins/dns.py:2400 +#: ipalib/plugins/dns.py:2396 msgid "Modify a DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:2417 +#: ipalib/plugins/dns.py:2413 msgid "DNS zone root record cannot be renamed" msgstr "" -#: ipalib/plugins/dns.py:2435 +#: ipalib/plugins/dns.py:2431 msgid "DNS records can be only updated one at a time" msgstr "" -#: ipalib/plugins/dns.py:2519 +#: ipalib/plugins/dns.py:2514 msgid "No option to modify specific record provided." msgstr "" -#: ipalib/plugins/dns.py:2522 ipalib/plugins/dns.py:2694 +#: ipalib/plugins/dns.py:2517 ipalib/plugins/dns.py:2689 msgid "Current DNS record contents:\n" msgstr "" -#: ipalib/plugins/dns.py:2544 +#: ipalib/plugins/dns.py:2539 #, python-format msgid "Modify %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:2552 +#: ipalib/plugins/dns.py:2547 #, python-format msgid "" "%(count)d %(type)s record skipped. Only one value per DNS record type can be " @@ -3374,104 +3393,104 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/dns.py:2564 +#: ipalib/plugins/dns.py:2559 #, python-format msgid "Deleted record \"%(value)s\"" msgstr "" -#: ipalib/plugins/dns.py:2571 +#: ipalib/plugins/dns.py:2566 msgid "Delete DNS resource record." msgstr "" -#: ipalib/plugins/dns.py:2573 +#: ipalib/plugins/dns.py:2568 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:2579 +#: ipalib/plugins/dns.py:2574 msgid "Delete all associated records" msgstr "" -#: ipalib/plugins/dns.py:2647 +#: ipalib/plugins/dns.py:2642 #, python-format msgid "Zone record '%s' cannot be deleted" msgstr "" -#: ipalib/plugins/dns.py:2686 +#: ipalib/plugins/dns.py:2681 msgid "No option to delete specific record provided." msgstr "" -#: ipalib/plugins/dns.py:2687 +#: ipalib/plugins/dns.py:2682 msgid "Delete all?" msgstr "" -#: ipalib/plugins/dns.py:2715 +#: ipalib/plugins/dns.py:2710 #, python-format msgid "Delete %(name)s '%(value)s'?" msgstr "" -#: ipalib/plugins/dns.py:2726 +#: ipalib/plugins/dns.py:2721 msgid "Display DNS resource." msgstr "" -#: ipalib/plugins/dns.py:2743 +#: ipalib/plugins/dns.py:2738 msgid "Search for DNS resources." msgstr "" -#: ipalib/plugins/dns.py:2778 +#: ipalib/plugins/dns.py:2773 msgid "Resolve a host name in DNS." msgstr "" -#: ipalib/plugins/dns.py:2781 +#: ipalib/plugins/dns.py:2776 #, python-format msgid "Found '%(value)s'" msgstr "" -#: ipalib/plugins/dns.py:2798 +#: ipalib/plugins/dns.py:2793 #, python-format msgid "Host '%(host)s' not found" msgstr "" -#: ipalib/plugins/dns.py:2835 +#: ipalib/plugins/dns.py:2830 msgid "DNS configuration options" msgstr "" -#: ipalib/plugins/dns.py:2841 ipalib/plugins/dns.py:2842 +#: ipalib/plugins/dns.py:2836 ipalib/plugins/dns.py:2837 msgid "DNS Global Configuration" msgstr "" -#: ipalib/plugins/dns.py:2848 +#: ipalib/plugins/dns.py:2843 msgid "Global forwarders" msgstr "" -#: ipalib/plugins/dns.py:2849 +#: ipalib/plugins/dns.py:2844 msgid "" "A list of global forwarders. A custom port can be specified for each " "forwarder using a standard format \"IP_ADDRESS port PORT\"" msgstr "" -#: ipalib/plugins/dns.py:2861 +#: ipalib/plugins/dns.py:2856 msgid "Allow synchronization of forward (A, AAAA) and reverse (PTR) records" msgstr "" -#: ipalib/plugins/dns.py:2865 +#: ipalib/plugins/dns.py:2860 msgid "Zone refresh interval" msgstr "" -#: ipalib/plugins/dns.py:2866 +#: ipalib/plugins/dns.py:2861 msgid "An interval between regular polls of the name server for new DNS zones" msgstr "" -#: ipalib/plugins/dns.py:2882 +#: ipalib/plugins/dns.py:2877 msgid "Global DNS configuration is empty" msgstr "" -#: ipalib/plugins/dns.py:2888 +#: ipalib/plugins/dns.py:2883 msgid "Modify global DNS configuration." msgstr "" -#: ipalib/plugins/dns.py:2899 +#: ipalib/plugins/dns.py:2894 msgid "Show the current global DNS configuration." msgstr "" @@ -3585,7 +3604,7 @@ msgid "End" msgstr "" #: ipalib/plugins/entitle.py:401 ipalib/plugins/host.py:162 -#: ipalib/plugins/internal.py:342 ipalib/plugins/service.py:97 +#: ipalib/plugins/internal.py:342 ipalib/plugins/service.py:100 msgid "Serial Number" msgstr "" @@ -3692,177 +3711,198 @@ msgid "" "\n" " Display information about a named group.\n" " ipa group-show localadmins\n" +"\n" +"External group membership is designed to allow users from trusted domains\n" +"to be mapped to local POSIX groups in order to actually use IPA resources.\n" +"External members should be added to groups that specifically created as\n" +"external and non-POSIX. Such group later should be included into one of " +"POSIX\n" +"groups.\n" +"\n" +"An external group member is currently a Security Identifier as defined by\n" +"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 " +"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 " +"ad_admins_external\n" +" group (security identifier of <ad.domain SID>-513 is Domain Admins " +"group):\n" +"\n" +" ipa group-add-member ad_admins_external --external ${domainsid}-513\n" +"\n" +"4. 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" msgstr "" -#: ipalib/plugins/group.py:88 ipalib/plugins/group.py:190 -#: ipalib/plugins/group.py:383 ipalib/plugins/user.py:188 +#: ipalib/plugins/group.py:117 ipalib/plugins/group.py:226 +#: ipalib/plugins/group.py:416 ipalib/plugins/user.py:188 msgid "group" msgstr "" -#: ipalib/plugins/group.py:89 +#: ipalib/plugins/group.py:118 msgid "groups" msgstr "" -#: ipalib/plugins/group.py:108 ipalib/plugins/hbacrule.py:195 -#: ipalib/plugins/internal.py:494 ipalib/plugins/selinuxusermap.py:188 +#: ipalib/plugins/group.py:137 ipalib/plugins/hbacrule.py:195 +#: ipalib/plugins/internal.py:494 ipalib/plugins/selinuxusermap.py:195 #: ipalib/plugins/sudorule.py:159 msgid "User Groups" msgstr "" -#: ipalib/plugins/group.py:109 +#: ipalib/plugins/group.py:138 msgid "User Group" msgstr "" -#: ipalib/plugins/group.py:117 +#: ipalib/plugins/group.py:146 msgid "Group name" msgstr "" -#: ipalib/plugins/group.py:124 ipalib/plugins/sudocmdgroup.py:79 +#: ipalib/plugins/group.py:153 ipalib/plugins/sudocmdgroup.py:79 msgid "Group description" msgstr "" -#: ipalib/plugins/group.py:128 ipalib/plugins/user.py:312 +#: ipalib/plugins/group.py:157 ipalib/plugins/user.py:312 msgid "GID" msgstr "" -#: ipalib/plugins/group.py:129 +#: ipalib/plugins/group.py:158 msgid "GID (use this option to set it manually)" msgstr "" -#: ipalib/plugins/group.py:138 +#: ipalib/plugins/group.py:167 +msgid "External member" +msgstr "" + +#: ipalib/plugins/group.py:168 +msgid "comma-separated SIDs of members of a trusted domain" +msgstr "" + +#: ipalib/plugins/group.py:174 msgid "Create a new group." msgstr "" -#: ipalib/plugins/group.py:140 +#: ipalib/plugins/group.py:176 #, python-format msgid "Added group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:145 +#: ipalib/plugins/group.py:181 msgid "Create as a non-POSIX group" msgstr "" -#: ipalib/plugins/group.py:150 +#: ipalib/plugins/group.py:186 msgid "Allow adding external non-IPA members from trusted domains" msgstr "" -#: ipalib/plugins/group.py:175 +#: ipalib/plugins/group.py:211 msgid "Delete group." msgstr "" -#: ipalib/plugins/group.py:177 +#: ipalib/plugins/group.py:213 #, python-format msgid "Deleted group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:191 +#: ipalib/plugins/group.py:227 msgid "privileged group" msgstr "" -#: ipalib/plugins/group.py:209 +#: ipalib/plugins/group.py:245 msgid "Modify a group." msgstr "" -#: ipalib/plugins/group.py:211 +#: ipalib/plugins/group.py:247 #, python-format msgid "Modified group \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:216 +#: ipalib/plugins/group.py:252 msgid "change to a POSIX group" msgstr "" -#: ipalib/plugins/group.py:220 +#: ipalib/plugins/group.py:256 msgid "change to support external non-IPA members from trusted domains" msgstr "" -#: ipalib/plugins/group.py:266 +#: ipalib/plugins/group.py:315 msgid "Search for groups." msgstr "" -#: ipalib/plugins/group.py:271 +#: ipalib/plugins/group.py:320 #, python-format msgid "%(count)d group matched" msgid_plural "%(count)d groups matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/group.py:277 +#: ipalib/plugins/group.py:326 msgid "search for private groups" msgstr "" -#: ipalib/plugins/group.py:308 +#: ipalib/plugins/group.py:357 msgid "Display information about a named group." msgstr "" -#: ipalib/plugins/group.py:314 +#: ipalib/plugins/group.py:363 msgid "Add members to a group." msgstr "" -#: ipalib/plugins/group.py:319 ipalib/plugins/group.py:368 -msgid "External member" -msgstr "" - -#: ipalib/plugins/group.py:320 ipalib/plugins/group.py:369 -msgid "comma-separated SIDs of members of a trusted domain" -msgstr "" - -#: ipalib/plugins/group.py:331 -msgid "AD Trust" -msgstr "" - -#: ipalib/plugins/group.py:332 +#: ipalib/plugins/group.py:372 msgid "" -"Cannot perform external member validation without Samba 4 support " -"installed.\n" -" Make sure you have installed server-trust-" -"ad sub-package of IPA on the server" +"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:336 ipalib/plugins/trust.py:238 -#: ipalib/plugins/trust.py:249 ipalib/plugins/trust.py:262 -#: ipalib/plugins/trust.py:267 ipalib/plugins/trust.py:273 -#: ipalib/plugins/trust.py:283 -msgid "AD Trust setup" -msgstr "" - -#: ipalib/plugins/group.py:337 +#: ipalib/plugins/group.py:377 msgid "" -"Cannot perform join operation without own domain configured.\n" -" Make sure you have run ipa-adtrust-install " -"on the IPA server first" +"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:347 +#: ipalib/plugins/group.py:387 msgid "external member" msgstr "" -#: ipalib/plugins/group.py:348 +#: ipalib/plugins/group.py:388 msgid "values are not recognized as valid SIDs from trusted domain" msgstr "" -#: ipalib/plugins/group.py:363 +#: ipalib/plugins/group.py:403 msgid "Remove members from a group." msgstr "" -#: ipalib/plugins/group.py:405 +#: ipalib/plugins/group.py:438 msgid "Detach a managed group from a user." msgstr "" -#: ipalib/plugins/group.py:408 +#: ipalib/plugins/group.py:441 #, python-format msgid "Detached group \"%(value)s\" from user \"%(value)s\"" msgstr "" -#: ipalib/plugins/group.py:429 +#: ipalib/plugins/group.py:462 msgid "not allowed to modify user entries" msgstr "" -#: ipalib/plugins/group.py:435 +#: ipalib/plugins/group.py:468 msgid "not allowed to modify group entries" msgstr "" -#: ipalib/plugins/group.py:454 +#: ipalib/plugins/group.py:487 msgid "Not a managed group" msgstr "" @@ -3937,11 +3977,11 @@ msgstr "" msgid "HBAC Rules" msgstr "" -#: ipalib/plugins/hbacrule.py:135 ipalib/plugins/selinuxusermap.py:160 +#: ipalib/plugins/hbacrule.py:135 ipalib/plugins/selinuxusermap.py:167 msgid "HBAC Rule" msgstr "" -#: ipalib/plugins/hbacrule.py:140 ipalib/plugins/selinuxusermap.py:151 +#: ipalib/plugins/hbacrule.py:140 ipalib/plugins/selinuxusermap.py:158 #: ipalib/plugins/sudorule.py:106 msgid "Rule name" msgstr "" @@ -3955,22 +3995,22 @@ msgid "Rule type" msgstr "" #: ipalib/plugins/hbacrule.py:156 ipalib/plugins/netgroup.py:139 -#: ipalib/plugins/selinuxusermap.py:165 ipalib/plugins/sudorule.py:119 +#: ipalib/plugins/selinuxusermap.py:172 ipalib/plugins/sudorule.py:119 msgid "User category" msgstr "" #: ipalib/plugins/hbacrule.py:157 ipalib/plugins/netgroup.py:140 -#: ipalib/plugins/selinuxusermap.py:166 ipalib/plugins/sudorule.py:120 +#: ipalib/plugins/selinuxusermap.py:173 ipalib/plugins/sudorule.py:120 msgid "User category the rule applies to" msgstr "" #: ipalib/plugins/hbacrule.py:162 ipalib/plugins/netgroup.py:145 -#: ipalib/plugins/selinuxusermap.py:171 ipalib/plugins/sudorule.py:125 +#: ipalib/plugins/selinuxusermap.py:178 ipalib/plugins/sudorule.py:125 msgid "Host category" msgstr "" #: ipalib/plugins/hbacrule.py:163 ipalib/plugins/netgroup.py:146 -#: ipalib/plugins/selinuxusermap.py:172 ipalib/plugins/sudorule.py:126 +#: ipalib/plugins/selinuxusermap.py:179 ipalib/plugins/sudorule.py:126 msgid "Host category the rule applies to" msgstr "" @@ -3991,24 +4031,24 @@ msgid "Service category the rule applies to" msgstr "" #: ipalib/plugins/hbacrule.py:187 ipalib/plugins/internal.py:643 -#: ipalib/plugins/selinuxusermap.py:180 ipalib/plugins/sudorule.py:114 +#: 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/selinuxusermap.py:184 ipalib/plugins/sudorule.py:155 +#: ipalib/plugins/selinuxusermap.py:191 ipalib/plugins/sudorule.py:155 #: ipalib/plugins/user.py:224 msgid "Users" msgstr "" #: ipalib/plugins/hbacrule.py:199 ipalib/plugins/host.py:247 -#: ipalib/plugins/internal.py:489 ipalib/plugins/selinuxusermap.py:192 +#: ipalib/plugins/internal.py:489 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:196 +#: ipalib/plugins/internal.py:488 ipalib/plugins/selinuxusermap.py:203 #: ipalib/plugins/sudorule.py:167 msgid "Host Groups" msgstr "" @@ -4022,7 +4062,7 @@ msgid "Source Host Groups" msgstr "" #: ipalib/plugins/hbacrule.py:215 ipalib/plugins/internal.py:436 -#: ipalib/plugins/service.py:236 +#: ipalib/plugins/service.py:240 msgid "Services" msgstr "" @@ -4058,12 +4098,12 @@ msgid "Modified HBAC rule \"%(value)s\"" msgstr "" #: ipalib/plugins/hbacrule.py:272 ipalib/plugins/netgroup.py:213 -#: ipalib/plugins/selinuxusermap.py:286 ipalib/plugins/sudorule.py:289 +#: 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/selinuxusermap.py:289 ipalib/plugins/sudorule.py:291 +#: ipalib/plugins/sudorule.py:291 msgid "host category cannot be set to 'all' while there are allowed hosts" msgstr "" @@ -4119,7 +4159,7 @@ msgstr "" msgid "Add users and groups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:450 ipalib/plugins/selinuxusermap.py:420 +#: ipalib/plugins/hbacrule.py:450 ipalib/plugins/selinuxusermap.py:460 #: ipalib/plugins/sudorule.py:439 msgid "users cannot be added when user category='all'" msgstr "" @@ -4132,7 +4172,7 @@ msgstr "" msgid "Add target hosts and hostgroups to an HBAC rule." msgstr "" -#: ipalib/plugins/hbacrule.py:480 ipalib/plugins/selinuxusermap.py:452 +#: ipalib/plugins/hbacrule.py:480 ipalib/plugins/selinuxusermap.py:492 #: ipalib/plugins/sudorule.py:475 msgid "hosts cannot be added when host category='all'" msgstr "" @@ -4610,12 +4650,12 @@ msgid "" " ipa host-add-managedby --hosts=test2 test\n" msgstr "" -#: ipalib/plugins/host.py:150 ipalib/plugins/service.py:88 +#: ipalib/plugins/host.py:150 ipalib/plugins/service.py:91 msgid "Keytab" msgstr "" #: ipalib/plugins/host.py:165 ipalib/plugins/internal.py:343 -#: ipalib/plugins/service.py:100 +#: ipalib/plugins/service.py:103 msgid "Serial Number (hex)" msgstr "" @@ -4692,7 +4732,7 @@ msgstr "" msgid "Random password" msgstr "" -#: ipalib/plugins/host.py:299 ipalib/plugins/service.py:250 +#: ipalib/plugins/host.py:299 ipalib/plugins/service.py:254 msgid "Base-64 encoded server certificate" msgstr "" @@ -4791,11 +4831,11 @@ msgstr[1] "" msgid "Display information about a host." msgstr "" -#: ipalib/plugins/host.py:823 ipalib/plugins/service.py:448 +#: ipalib/plugins/host.py:823 ipalib/plugins/service.py:472 msgid "file to store certificate in" msgstr "" -#: ipalib/plugins/host.py:854 ipalib/plugins/service.py:467 +#: ipalib/plugins/host.py:854 ipalib/plugins/service.py:491 #, python-format msgid "Certificate stored in file '%(file)s'" msgstr "" @@ -4930,7 +4970,7 @@ msgstr "" msgid "Remove members from a hostgroup." msgstr "" -#: ipalib/plugins/idrange.py:30 +#: ipalib/plugins/idrange.py:36 msgid "" "\n" "ID ranges\n" @@ -4966,8 +5006,8 @@ msgid "" "given\n" "while creating the ID range.\n" "\n" -" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" -" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 \\\n" +" --dom-sid=S-1-5-21-123-456-789 trusted_dom_range\n" "\n" "This ID range is then used by the IPA server and the SSSD IPA provider to\n" "assign Posix UIDs to users from the trusted domain.\n" @@ -4990,8 +5030,8 @@ msgid "" "same\n" "value as Posix ID a second RID interval is needed to handle conflicts.\n" "\n" -" ipa range-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" -" --secondary-rid-base=1000000 local_range\n" +" ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=1000 \\\n" +" --secondary-rid-base=1000000 local_range\n" "\n" "The data from the ID ranges of the local domain are used by the IPA server\n" "internally to assign SIDs to IPA users and groups. The SID will then be " @@ -5019,7 +5059,7 @@ msgid "" "Typically the creation of ID ranges happens behind the scenes and this CLI\n" "must not be used at all. The ID range for the local domain will be created\n" "during installation or upgrade from an older version. The ID range for a\n" -"trusted domain will be create together with the trust by 'ipa trust-" +"trusted domain will be created together with the trust by 'ipa trust-" "add ...'.\n" "The use cases for this CLI are\n" "\n" @@ -5038,7 +5078,7 @@ msgid "" "be\n" " assigned to Posix users or groups by the DNA plugin, a new range has to " "be\n" -" created to allow new users an groups to be added. (Currently there is " +" created to allow new users and groups to be added. (Currently there is " "no\n" " connection between this range CLI and the DNA plugin, but a future " "version\n" @@ -5064,57 +5104,73 @@ msgid "" "groups.\n" msgstr "" -#: ipalib/plugins/idrange.py:155 +#: ipalib/plugins/idrange.py:161 msgid "ID Ranges" msgstr "" -#: ipalib/plugins/idrange.py:156 +#: ipalib/plugins/idrange.py:162 msgid "ID Range" msgstr "" -#: ipalib/plugins/idrange.py:161 +#: ipalib/plugins/idrange.py:167 msgid "Range name" msgstr "" -#: ipalib/plugins/idrange.py:166 +#: ipalib/plugins/idrange.py:172 msgid "First Posix ID of the range" msgstr "" -#: ipalib/plugins/idrange.py:170 +#: ipalib/plugins/idrange.py:176 msgid "Number of IDs in the range" msgstr "" -#: ipalib/plugins/idrange.py:174 +#: ipalib/plugins/idrange.py:180 msgid "First RID of the corresponding RID range" msgstr "" -#: ipalib/plugins/idrange.py:178 +#: ipalib/plugins/idrange.py:184 msgid "First RID of the secondary RID range" msgstr "" -#: ipalib/plugins/idrange.py:182 +#: ipalib/plugins/idrange.py:188 msgid "Domain SID of the trusted domain" msgstr "" -#: ipalib/plugins/idrange.py:185 ipalib/plugins/internal.py:516 +#: ipalib/plugins/idrange.py:191 ipalib/plugins/internal.py:516 msgid "Range type" msgstr "" -#: ipalib/plugins/idrange.py:193 +#: ipalib/plugins/idrange.py:199 msgid "Active Directory domain range" msgstr "" -#: ipalib/plugins/idrange.py:195 +#: ipalib/plugins/idrange.py:201 msgid "local domain range" msgstr "" -#: ipalib/plugins/idrange.py:249 +#: ipalib/plugins/idrange.py:255 msgid "" "range modification leaving objects with ID out of the defined range is not " "allowed" msgstr "" -#: ipalib/plugins/idrange.py:253 +#: ipalib/plugins/idrange.py:260 +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 +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 +msgid "SID is not recognized as a valid SID for a trusted domain" +msgstr "" + +#: ipalib/plugins/idrange.py:271 msgid "" "\n" " Add new ID range.\n" @@ -5127,7 +5183,7 @@ msgid "" " Additionally\n" "\n" " --rid-base\n" -" --econdary-rid-base\n" +" --secondary-rid-base\n" "\n" " may be given for a new ID range for the local domain while\n" "\n" @@ -5138,57 +5194,52 @@ msgid "" " " msgstr "" -#: ipalib/plugins/idrange.py:274 +#: ipalib/plugins/idrange.py:292 #, python-format msgid "Added ID range \"%(value)s\"" msgstr "" -#: ipalib/plugins/idrange.py:281 ipalib/plugins/idrange.py:286 -#: ipalib/plugins/idrange.py:293 -msgid "ID Range setup" -msgstr "" - -#: ipalib/plugins/idrange.py:282 +#: ipalib/plugins/idrange.py:300 msgid "Options dom_sid and secondary_rid_base cannot be used together" msgstr "" -#: ipalib/plugins/idrange.py:287 +#: ipalib/plugins/idrange.py:305 msgid "Options dom_sid and rid_base must be used together" msgstr "" -#: ipalib/plugins/idrange.py:294 +#: ipalib/plugins/idrange.py:315 msgid "Options secondary_rid_base and rid_base must be used together" msgstr "" -#: ipalib/plugins/idrange.py:307 +#: ipalib/plugins/idrange.py:328 msgid "Delete an ID range." msgstr "" -#: ipalib/plugins/idrange.py:309 +#: ipalib/plugins/idrange.py:330 #, python-format msgid "Deleted ID range \"%(value)s\"" msgstr "" -#: ipalib/plugins/idrange.py:324 +#: ipalib/plugins/idrange.py:345 msgid "Search for ranges." msgstr "" -#: ipalib/plugins/idrange.py:327 +#: ipalib/plugins/idrange.py:348 #, python-format msgid "%(count)d range matched" msgid_plural "%(count)d ranges matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/idrange.py:343 +#: ipalib/plugins/idrange.py:364 msgid "Display information about a range." msgstr "" -#: ipalib/plugins/idrange.py:356 +#: ipalib/plugins/idrange.py:377 msgid "Modify ID range." msgstr "" -#: ipalib/plugins/idrange.py:358 +#: ipalib/plugins/idrange.py:379 #, python-format msgid "Modified ID range \"%(value)s\"" msgstr "" @@ -5554,7 +5605,7 @@ msgid "Return to the main page and retry the operation" msgstr "" #: ipalib/plugins/internal.py:248 -msgid "An error has occured (${error})" +msgid "An error has occurred (${error})" msgstr "" #: ipalib/plugins/internal.py:252 @@ -5618,8 +5669,8 @@ msgstr "" #: ipalib/plugins/internal.py:272 msgid "" "To login with Kerberos, please make sure you have valid tickets (obtainable " -"via kinit) and <a href='/ipa/config/unauthorized.html'>configured</a> the " -"browser correctly, then click Login." +"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 @@ -6307,7 +6358,7 @@ msgstr "" msgid "Secondary RID base" msgstr "" -#: ipalib/plugins/internal.py:517 ipalib/plugins/trust.py:58 +#: ipalib/plugins/internal.py:517 ipalib/plugins/trust.py:115 msgid "Active Directory domain" msgstr "" @@ -6443,11 +6494,11 @@ msgstr "" msgid "Establish using" msgstr "" -#: ipalib/plugins/internal.py:591 ipalib/plugins/trust.py:46 +#: ipalib/plugins/internal.py:591 ipalib/plugins/trust.py:103 msgid "Domain NetBIOS name" msgstr "" -#: ipalib/plugins/internal.py:592 ipalib/plugins/trust.py:48 +#: ipalib/plugins/internal.py:592 ipalib/plugins/trust.py:105 msgid "Domain Security Identifier" msgstr "" @@ -6455,15 +6506,15 @@ msgstr "" msgid "Pre-shared password" msgstr "" -#: ipalib/plugins/internal.py:594 ipalib/plugins/trust.py:50 +#: ipalib/plugins/internal.py:594 ipalib/plugins/trust.py:107 msgid "Trust direction" msgstr "" -#: ipalib/plugins/internal.py:595 ipalib/plugins/trust.py:54 +#: ipalib/plugins/internal.py:595 ipalib/plugins/trust.py:111 msgid "Trust status" msgstr "" -#: ipalib/plugins/internal.py:596 ipalib/plugins/trust.py:52 +#: ipalib/plugins/internal.py:596 ipalib/plugins/trust.py:109 msgid "Trust type" msgstr "" @@ -8089,130 +8140,130 @@ msgstr "" msgid "HBAC rule and local members cannot both be set" msgstr "" -#: ipalib/plugins/selinuxusermap.py:97 +#: ipalib/plugins/selinuxusermap.py:98 msgid "Invalid SELinux user name, only a-Z and _ are allowed" msgstr "" -#: ipalib/plugins/selinuxusermap.py:99 +#: ipalib/plugins/selinuxusermap.py:100 msgid "Invalid MLS value, must match s[0-15](-s[0-15])" msgstr "" -#: ipalib/plugins/selinuxusermap.py:102 +#: ipalib/plugins/selinuxusermap.py:103 msgid "" "Invalid MCS value, must match c[0-1023].c[0-1023] and/or c[0-1023]-c[0-c0123]" msgstr "" -#: ipalib/plugins/selinuxusermap.py:115 +#: ipalib/plugins/selinuxusermap.py:118 msgid "SELinux user map list not found in configuration" msgstr "" -#: ipalib/plugins/selinuxusermap.py:118 +#: ipalib/plugins/selinuxusermap.py:123 #, python-format msgid "SELinux user %(user)s not found in ordering list (in config)" msgstr "" -#: ipalib/plugins/selinuxusermap.py:127 +#: ipalib/plugins/selinuxusermap.py:134 msgid "SELinux User Map rule" msgstr "" -#: ipalib/plugins/selinuxusermap.py:128 +#: ipalib/plugins/selinuxusermap.py:135 msgid "SELinux User Map rules" msgstr "" -#: ipalib/plugins/selinuxusermap.py:145 +#: ipalib/plugins/selinuxusermap.py:152 msgid "SELinux User Maps" msgstr "" -#: ipalib/plugins/selinuxusermap.py:146 +#: ipalib/plugins/selinuxusermap.py:153 msgid "SELinux User Map" msgstr "" -#: ipalib/plugins/selinuxusermap.py:156 +#: ipalib/plugins/selinuxusermap.py:163 msgid "SELinux User" msgstr "" -#: ipalib/plugins/selinuxusermap.py:161 +#: ipalib/plugins/selinuxusermap.py:168 msgid "HBAC Rule that defines the users, groups and hostgroups" msgstr "" -#: ipalib/plugins/selinuxusermap.py:217 +#: ipalib/plugins/selinuxusermap.py:228 #, python-format msgid "HBAC rule %(rule)s not found" msgstr "" -#: ipalib/plugins/selinuxusermap.py:236 +#: ipalib/plugins/selinuxusermap.py:247 msgid "Create a new SELinux User Map." msgstr "" -#: ipalib/plugins/selinuxusermap.py:238 +#: ipalib/plugins/selinuxusermap.py:249 #, python-format msgid "Added SELinux User Map \"%(value)s\"" msgstr "" -#: ipalib/plugins/selinuxusermap.py:260 +#: ipalib/plugins/selinuxusermap.py:284 msgid "Delete a SELinux User Map." msgstr "" -#: ipalib/plugins/selinuxusermap.py:262 +#: ipalib/plugins/selinuxusermap.py:286 #, python-format msgid "Deleted SELinux User Map \"%(value)s\"" msgstr "" -#: ipalib/plugins/selinuxusermap.py:268 +#: ipalib/plugins/selinuxusermap.py:292 msgid "Modify a SELinux User Map." msgstr "" -#: ipalib/plugins/selinuxusermap.py:270 +#: ipalib/plugins/selinuxusermap.py:294 #, python-format msgid "Modified SELinux User Map \"%(value)s\"" msgstr "" -#: ipalib/plugins/selinuxusermap.py:308 +#: ipalib/plugins/selinuxusermap.py:348 msgid "Search for SELinux User Maps." msgstr "" -#: ipalib/plugins/selinuxusermap.py:311 +#: ipalib/plugins/selinuxusermap.py:351 #, python-format msgid "%(count)d SELinux User Map matched" msgid_plural "%(count)d SELinux User Maps matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/selinuxusermap.py:341 +#: ipalib/plugins/selinuxusermap.py:381 msgid "Display the properties of a SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:352 +#: ipalib/plugins/selinuxusermap.py:392 msgid "Enable an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:354 +#: ipalib/plugins/selinuxusermap.py:394 #, python-format msgid "Enabled SELinux User Map \"%(value)s\"" msgstr "" -#: ipalib/plugins/selinuxusermap.py:379 +#: ipalib/plugins/selinuxusermap.py:419 msgid "Disable an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:381 +#: ipalib/plugins/selinuxusermap.py:421 #, python-format msgid "Disabled SELinux User Map \"%(value)s\"" msgstr "" -#: ipalib/plugins/selinuxusermap.py:406 +#: ipalib/plugins/selinuxusermap.py:446 msgid "Add users and groups to an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:429 +#: ipalib/plugins/selinuxusermap.py:469 msgid "Remove users and groups from an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:438 +#: ipalib/plugins/selinuxusermap.py:478 msgid "Add target hosts and hostgroups to an SELinux User Map rule." msgstr "" -#: ipalib/plugins/selinuxusermap.py:461 +#: ipalib/plugins/selinuxusermap.py:501 msgid "Remove target hosts and hostgroups from an SELinux User Map rule." msgstr "" @@ -8246,8 +8297,11 @@ msgid "" " ipa service-add HTTP/web.example.com\n" "\n" " Allow a host to manage an IPA service certificate:\n" -" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" -" ipa role-add-member --hosts=web.example.com certadmin\n" +" ipa service-add-host --hosts=web.example.com HTTP/web.example.com\n" +" ipa role-add-member --hosts=web.example.com certadmin\n" +"\n" +" Override a default list of supported PAC types for the service:\n" +" ipa service-mod HTTP/web.example.com --pac-type=MS-PAC\n" "\n" " Delete an IPA service:\n" " ipa service-del HTTP/web.example.com\n" @@ -8270,102 +8324,112 @@ msgid "" "\n" msgstr "" -#: ipalib/plugins/service.py:129 +#: ipalib/plugins/service.py:132 msgid "missing service" msgstr "" -#: ipalib/plugins/service.py:133 +#: ipalib/plugins/service.py:136 msgid "blank service" msgstr "" -#: ipalib/plugins/service.py:137 +#: ipalib/plugins/service.py:140 msgid "unable to determine realm" msgstr "" -#: ipalib/plugins/service.py:210 +#: ipalib/plugins/service.py:213 msgid "This principal is required by the IPA master" msgstr "" -#: ipalib/plugins/service.py:217 +#: ipalib/plugins/service.py:220 msgid "service" msgstr "" -#: ipalib/plugins/service.py:218 +#: ipalib/plugins/service.py:221 msgid "services" msgstr "" -#: ipalib/plugins/service.py:243 +#: ipalib/plugins/service.py:247 msgid "Service principal" msgstr "" -#: ipalib/plugins/service.py:256 -msgid "Types of PAC this service supports" +#: ipalib/plugins/service.py:259 +msgid "PAC type" +msgstr "" + +#: ipalib/plugins/service.py:260 +msgid "" +"Override default list of supported PAC types. Use 'NONE' to disable PAC " +"support for this service" msgstr "" -#: ipalib/plugins/service.py:266 +#: ipalib/plugins/service.py:280 +msgid "NONE value cannot be combined with other PAC types" +msgstr "" + +#: ipalib/plugins/service.py:286 msgid "Add a new IPA new service." msgstr "" -#: ipalib/plugins/service.py:268 +#: ipalib/plugins/service.py:288 #, python-format msgid "Added service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:274 +#: ipalib/plugins/service.py:294 msgid "force principal name even if not in DNS" msgstr "" -#: ipalib/plugins/service.py:287 +#: ipalib/plugins/service.py:307 #, python-format msgid "The host '%s' does not exist to add a service to." msgstr "" -#: ipalib/plugins/service.py:320 +#: ipalib/plugins/service.py:341 msgid "Delete an IPA service." msgstr "" -#: ipalib/plugins/service.py:322 +#: ipalib/plugins/service.py:343 #, python-format msgid "Deleted service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:365 +#: ipalib/plugins/service.py:386 msgid "Modify an existing IPA service." msgstr "" -#: ipalib/plugins/service.py:367 +#: ipalib/plugins/service.py:388 #, python-format msgid "Modified service \"%(value)s\"" msgstr "" -#: ipalib/plugins/service.py:406 +#: ipalib/plugins/service.py:430 msgid "Search for IPA services." msgstr "" -#: ipalib/plugins/service.py:409 +#: ipalib/plugins/service.py:433 #, python-format msgid "%(count)d service matched" msgid_plural "%(count)d services matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/service.py:443 +#: ipalib/plugins/service.py:467 msgid "Display information about an IPA service." msgstr "" -#: ipalib/plugins/service.py:477 +#: ipalib/plugins/service.py:501 msgid "Add hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:486 +#: ipalib/plugins/service.py:510 msgid "Remove hosts that can manage this service." msgstr "" -#: ipalib/plugins/service.py:495 +#: ipalib/plugins/service.py:519 msgid "Disable the Kerberos key and SSL certificate of a service." msgstr "" -#: ipalib/plugins/service.py:498 +#: ipalib/plugins/service.py:522 #, python-format msgid "Disabled service \"%(value)s\"" msgstr "" @@ -8552,10 +8616,10 @@ msgid "" "commands and their arguments.\n" "\n" "FreeIPA provides a means to configure the various aspects of Sudo:\n" -" Users: The user(s)/group(s) allowed to envoke Sudo.\n" +" Users: The user(s)/group(s) allowed to invoke Sudo.\n" " Hosts: The host(s)/hostgroup(s) which the user is allowed to to invoke " "Sudo.\n" -" Allow Command: The specific command(s) permited to be run via Sudo.\n" +" Allow Command: The specific command(s) permitted to be run via Sudo.\n" " Deny Command: The specific command(s) prohibited to be run via Sudo.\n" " RunAsUser: The user(s) or group(s) of users whose rights Sudo will be " "invoked with.\n" @@ -8862,201 +8926,314 @@ msgstr "" msgid "Removed option \"%(option)s\" from Sudo Rule \"%(rule)s\"" msgstr "" -#: ipalib/plugins/trust.py:40 +#: ipalib/plugins/trust.py:41 msgid "" "\n" -"Manage trust relationship between realms\n" +"Cross-realm trusts\n" +"\n" +"Manage trust relationship between IPA and Active Directory domains.\n" +"\n" +"In order to allow users from a remote domain to access resources in IPA\n" +"domain, trust relationship needs to be established. Currently IPA supports\n" +"only trusts between IPA and Active Directory domains under control of " +"Windows\n" +"Server 2008 or later, with functional level 2008 or later.\n" +"\n" +"Please note that DNS on both IPA and Active Directory domain sides should " +"be\n" +"configured properly to discover each other. Trust relationship relies on\n" +"ability to discover special resources in the other domain via DNS records.\n" +"\n" +"Examples:\n" +"\n" +"1. Establish cross-realm trust with Active Directory using AD administrator\n" +" credentials:\n" +"\n" +" ipa trust-add --type=ad <ad.domain> --admin <AD domain administrator> --" +"password\n" +"\n" +"2. List all existing trust relationships:\n" +"\n" +" ipa trust-find\n" +"\n" +"3. Show details of the specific trust relationship:\n" +"\n" +" ipa trust-show <ad.domain>\n" +"\n" +"4. Delete existing trust relationship:\n" +"\n" +" ipa trust-del <ad.domain>\n" +"\n" +"Once trust relationship is established, remote users will need to be mapped\n" +"to local POSIX groups in order to actually use IPA resources. The mapping " +"should\n" +"be done via use of external membership of non-POSIX group and then this " +"group\n" +"should be included into one of local POSIX groups.\n" +"\n" +"Example:\n" +"\n" +"1. 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 " +"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 " +"ad_admins_external\n" +" group (security identifier of <ad.domain SID>-512 is Domain Admins " +"group):\n" +"\n" +" ipa group-add-member ad_admins_external --external ${domainsid}-512\n" +"\n" +"4. 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" msgstr "" -#: ipalib/plugins/trust.py:57 +#: ipalib/plugins/trust.py:114 msgid "Non-Active Directory domain" msgstr "" -#: ipalib/plugins/trust.py:59 +#: ipalib/plugins/trust.py:116 msgid "RFC4120-compliant Kerberos realm" msgstr "" -#: ipalib/plugins/trust.py:60 +#: ipalib/plugins/trust.py:117 msgid "Trusting forest" msgstr "" -#: ipalib/plugins/trust.py:61 +#: ipalib/plugins/trust.py:118 msgid "Trusted forest" msgstr "" -#: ipalib/plugins/trust.py:62 +#: ipalib/plugins/trust.py:119 msgid "Two-way trust" msgstr "" -#: ipalib/plugins/trust.py:63 +#: ipalib/plugins/trust.py:120 msgid "Established and verified" msgstr "" -#: ipalib/plugins/trust.py:64 +#: ipalib/plugins/trust.py:121 msgid "Waiting for confirmation by remote side" msgstr "" -#: ipalib/plugins/trust.py:65 +#: ipalib/plugins/trust.py:122 msgid "Unknown" msgstr "" -#: ipalib/plugins/trust.py:96 +#: ipalib/plugins/trust.py:153 msgid "trust" msgstr "" -#: ipalib/plugins/trust.py:97 +#: ipalib/plugins/trust.py:154 msgid "trusts" msgstr "" -#: ipalib/plugins/trust.py:106 +#: ipalib/plugins/trust.py:163 msgid "Trusts" msgstr "" -#: ipalib/plugins/trust.py:107 +#: ipalib/plugins/trust.py:164 msgid "Trust" msgstr "" -#: ipalib/plugins/trust.py:112 ipa-client/ipa-rmkeytab.c:176 +#: ipalib/plugins/trust.py:169 ipa-client/ipa-rmkeytab.c:176 msgid "Realm name" msgstr "" -#: ipalib/plugins/trust.py:125 +#: ipalib/plugins/trust.py:182 msgid "Add new trust to use" msgstr "" -#: ipalib/plugins/trust.py:130 +#: ipalib/plugins/trust.py:187 msgid "Trust type (ad for Active Directory, default)" msgstr "" -#: ipalib/plugins/trust.py:137 +#: ipalib/plugins/trust.py:194 msgid "Active Directory domain administrator" msgstr "" -#: ipalib/plugins/trust.py:141 -msgid "Active directory domain adminstrator's password" +#: ipalib/plugins/trust.py:198 +msgid "Active directory domain administrator's password" msgstr "" -#: ipalib/plugins/trust.py:146 +#: ipalib/plugins/trust.py:203 msgid "Domain controller for the Active Directory domain (optional)" msgstr "" -#: ipalib/plugins/trust.py:150 +#: ipalib/plugins/trust.py:207 msgid "Shared secret for the trust" msgstr "" -#: ipalib/plugins/trust.py:155 +#: ipalib/plugins/trust.py:212 msgid "First Posix ID of the range reserved for the trusted domain" msgstr "" -#: ipalib/plugins/trust.py:159 +#: ipalib/plugins/trust.py:216 msgid "Size of the ID range reserved for the trusted domain" msgstr "" -#: ipalib/plugins/trust.py:165 +#: ipalib/plugins/trust.py:222 #, python-format msgid "Added Active Directory trust for realm \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:170 +#: ipalib/plugins/trust.py:227 msgid "missing base_id" msgstr "" -#: ipalib/plugins/trust.py:171 +#: ipalib/plugins/trust.py:228 msgid "pysss_murmur is not available on the server and no base-id is given." msgstr "" -#: ipalib/plugins/trust.py:178 ipalib/plugins/trust.py:180 +#: ipalib/plugins/trust.py:235 ipalib/plugins/trust.py:237 msgid "trust type" msgstr "" -#: ipalib/plugins/trust.py:178 +#: ipalib/plugins/trust.py:235 msgid "only \"ad\" is supported" msgstr "" -#: ipalib/plugins/trust.py:213 +#: ipalib/plugins/trust.py:272 msgid "range exists" msgstr "" -#: ipalib/plugins/trust.py:214 +#: ipalib/plugins/trust.py:273 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:230 +#: ipalib/plugins/trust.py:289 msgid "ID range exists" msgstr "" -#: ipalib/plugins/trust.py:231 +#: ipalib/plugins/trust.py:290 msgid "ID range already exists, must be added manually" msgstr "" -#: ipalib/plugins/trust.py:239 +#: 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 +msgid "AD Trust setup" +msgstr "" + +#: ipalib/plugins/trust.py:298 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:250 +#: ipalib/plugins/trust.py:309 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:263 +#: ipalib/plugins/trust.py:322 msgid "Trusted domain and administrator account use different realms" msgstr "" -#: ipalib/plugins/trust.py:267 +#: ipalib/plugins/trust.py:326 msgid "Realm administrator password should be specified" msgstr "" -#: ipalib/plugins/trust.py:273 +#: ipalib/plugins/trust.py:332 +#, python-format +msgid "Unable to resolve domain controller for '%s' domain. " +msgstr "" + +#: ipalib/plugins/trust.py:337 +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 +#, python-format +msgid "" +"When using Web UI, please create DNS zone for domain '%(domain)s' first and " +"then set forwarder and forward policy." +msgstr "" + +#: ipalib/plugins/trust.py:354 +#, 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 msgid "Unable to verify write permissions to the AD" msgstr "" -#: ipalib/plugins/trust.py:283 +#: ipalib/plugins/trust.py:372 msgid "Not enough arguments specified to perform trust setup" msgstr "" -#: ipalib/plugins/trust.py:286 +#: ipalib/plugins/trust.py:375 msgid "Delete a trust." msgstr "" -#: ipalib/plugins/trust.py:288 +#: ipalib/plugins/trust.py:377 #, python-format msgid "Deleted trust \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:299 +#: ipalib/plugins/trust.py:388 msgid "" "\n" " Modify a trust (for future use).\n" "\n" -" Currently only the default option to modify the LDAP attributes are\n" +" Currently only the default option to modify the LDAP attributes is\n" " available. More specific options will be added in coming releases.\n" " " msgstr "" -#: ipalib/plugins/trust.py:306 +#: ipalib/plugins/trust.py:395 #, python-format msgid "Modified trust \"%(value)s\"" msgstr "" -#: ipalib/plugins/trust.py:320 +#: ipalib/plugins/trust.py:409 msgid "Search for trusts." msgstr "" -#: ipalib/plugins/trust.py:324 +#: ipalib/plugins/trust.py:413 #, python-format msgid "%(count)d trust matched" msgid_plural "%(count)d trusts matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/trust.py:344 +#: ipalib/plugins/trust.py:433 msgid "Display information about a trust." msgstr "" @@ -9083,7 +9260,7 @@ msgid "" "\n" "Account lockout on password failure happens per IPA master. The user-status\n" "command can be used to identify which master the user is locked out on.\n" -"It is on that master the the administrator must unlock the user.\n" +"It is on that master the administrator must unlock the user.\n" "\n" "EXAMPLES:\n" "\n" @@ -9281,7 +9458,7 @@ msgstr "" msgid "Don't create user private group" msgstr "" -#: ipalib/plugins/user.py:477 ipalib/plugins/user.py:607 +#: ipalib/plugins/user.py:477 ipalib/plugins/user.py:615 #, python-format msgid "can be at most %(len)d characters" msgstr "" @@ -9290,66 +9467,66 @@ msgstr "" msgid "Default group for new users is not POSIX" msgstr "" -#: ipalib/plugins/user.py:580 +#: ipalib/plugins/user.py:588 msgid "Delete a user." msgstr "" -#: ipalib/plugins/user.py:582 +#: ipalib/plugins/user.py:590 #, python-format msgid "Deleted user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:593 +#: ipalib/plugins/user.py:601 msgid "Modify a user." msgstr "" -#: ipalib/plugins/user.py:595 +#: ipalib/plugins/user.py:603 #, python-format msgid "Modified user \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:648 +#: ipalib/plugins/user.py:656 msgid "Search for users." msgstr "" -#: ipalib/plugins/user.py:655 +#: ipalib/plugins/user.py:663 msgid "Self" msgstr "" -#: ipalib/plugins/user.py:656 +#: ipalib/plugins/user.py:664 msgid "Display user record for current Kerberos principal" msgstr "" -#: ipalib/plugins/user.py:687 +#: ipalib/plugins/user.py:695 #, python-format msgid "%(count)d user matched" msgid_plural "%(count)d users matched" msgstr[0] "" msgstr[1] "" -#: ipalib/plugins/user.py:694 +#: ipalib/plugins/user.py:702 msgid "Display information about a user." msgstr "" -#: ipalib/plugins/user.py:710 +#: ipalib/plugins/user.py:718 msgid "Disable a user account." msgstr "" -#: ipalib/plugins/user.py:713 +#: ipalib/plugins/user.py:721 #, python-format msgid "Disabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:732 +#: ipalib/plugins/user.py:740 msgid "Enable a user account." msgstr "" -#: ipalib/plugins/user.py:736 +#: ipalib/plugins/user.py:744 #, python-format msgid "Enabled user account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:753 +#: ipalib/plugins/user.py:761 msgid "" "\n" " Unlock a user account\n" @@ -9361,12 +9538,12 @@ msgid "" " an administrator." msgstr "" -#: ipalib/plugins/user.py:762 +#: ipalib/plugins/user.py:770 #, python-format msgid "Unlocked account \"%(value)s\"" msgstr "" -#: ipalib/plugins/user.py:778 +#: ipalib/plugins/user.py:786 msgid "" "\n" " Lockout status of a user account\n" @@ -9395,17 +9572,17 @@ msgid "" " means that the user may attempt a login again. " msgstr "" -#: ipalib/plugins/user.py:837 +#: ipalib/plugins/user.py:845 #, python-format msgid "%(host)s failed: %(error)s" msgstr "" -#: ipalib/plugins/user.py:875 +#: ipalib/plugins/user.py:883 #, python-format msgid "%(host)s failed" msgstr "" -#: ipalib/plugins/user.py:885 +#: ipalib/plugins/user.py:893 #, python-format msgid "Account disabled: %(disabled)s" msgstr "" @@ -9426,66 +9603,70 @@ msgstr "" msgid "could not allocate unique new session_id" msgstr "" -#: ipalib/util.py:149 +#: ipalib/util.py:150 msgid "Filename is empty" msgstr "" -#: ipalib/util.py:153 +#: ipalib/util.py:154 #, python-format msgid "Permission denied: %(file)s" msgstr "" -#: ipalib/util.py:185 +#: ipalib/util.py:192 msgid "empty DNS label" msgstr "" -#: ipalib/util.py:188 +#: ipalib/util.py:195 msgid "DNS label cannot be longer that 63 characters" msgstr "" -#: ipalib/util.py:191 +#: ipalib/util.py:198 #, python-format msgid "" "only letters, numbers,%(underscore)s and - are allowed. DNS label may not " "start or end with -" msgstr "" -#: ipalib/util.py:206 +#: ipalib/util.py:213 msgid "top level domain label must be alphabetic" msgstr "" -#: ipalib/util.py:212 +#: ipalib/util.py:219 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:218 ipalib/util.py:257 +#: ipalib/util.py:225 ipalib/util.py:264 msgid "cannot be longer that 255 characters" msgstr "" -#: ipalib/util.py:226 +#: ipalib/util.py:233 msgid "too many '@' characters" msgstr "" -#: ipalib/util.py:239 +#: ipalib/util.py:246 msgid "missing address domain" msgstr "" -#: ipalib/util.py:244 +#: ipalib/util.py:251 msgid "missing mail account" msgstr "" -#: ipalib/util.py:264 +#: ipalib/util.py:270 +msgid "hostname contains empty label (consecutive dots)" +msgstr "" + +#: ipalib/util.py:274 msgid "not fully qualified" msgstr "" -#: ipalib/util.py:276 ipalib/util.py:282 +#: ipalib/util.py:286 ipalib/util.py:292 msgid "invalid SSH public key" msgstr "" -#: ipalib/util.py:285 +#: ipalib/util.py:295 msgid "options are not allowed" msgstr "" @@ -9498,17 +9679,17 @@ msgstr "" msgid "Issuer \"%(issuer)s\" does not match the expected issuer" msgstr "" -#: ipapython/dogtag.py:58 +#: ipapython/dogtag.py:160 #, python-format msgid "Retrieving CA cert chain failed: %s" msgstr "" -#: ipapython/dogtag.py:64 +#: ipapython/dogtag.py:166 #, python-format msgid "request failed with HTTP status %d" msgstr "" -#: ipaserver/dcerpc.py:46 +#: ipaserver/dcerpc.py:50 msgid "" "\n" "Classes to manage trust joins using DCE-RPC calls\n" @@ -9517,52 +9698,52 @@ msgid "" "and Samba4 python bindings.\n" msgstr "" -#: ipaserver/dcerpc.py:53 +#: ipaserver/dcerpc.py:57 msgid "CIFS server denied your credentials" msgstr "" -#: ipaserver/dcerpc.py:56 +#: ipaserver/dcerpc.py:60 msgid "communication with CIFS server was unsuccessful" msgstr "" -#: ipaserver/dcerpc.py:61 +#: ipaserver/dcerpc.py:65 msgid "AD domain controller" msgstr "" -#: ipaserver/dcerpc.py:61 +#: ipaserver/dcerpc.py:65 msgid "unsupported functional level" msgstr "" -#: ipaserver/dcerpc.py:66 +#: ipaserver/dcerpc.py:70 msgid "Cannot find specified domain or server name" msgstr "" -#: ipaserver/dcerpc.py:68 +#: ipaserver/dcerpc.py:72 msgid "At least the domain or IP address should be specified" msgstr "" -#: ipaserver/dcerpc.py:80 +#: ipaserver/dcerpc.py:84 #, python-format msgid "" "CIFS server communication error: code \"%(num)s\",\n" " message \"%(message)s\" (both may be \"None\")" msgstr "" -#: ipaserver/dcerpc.py:182 +#: ipaserver/dcerpc.py:184 msgid "CIFS credentials object" msgstr "" -#: ipaserver/dcerpc.py:215 +#: ipaserver/dcerpc.py:217 #, python-format msgid "CIFS server %(host)s denied your credentials" msgstr "" -#: ipaserver/dcerpc.py:219 +#: ipaserver/dcerpc.py:221 #, python-format msgid "Cannot establish LSA connection to %(host)s. Is CIFS server running?" msgstr "" -#: ipaserver/install/certs.py:668 ipaserver/plugins/dogtag.py:1379 +#: 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 #, python-format @@ -9592,7 +9773,7 @@ msgid "" "'%s'." msgstr "" -#: ipaserver/plugins/ldap2.py:751 +#: ipaserver/plugins/ldap2.py:753 #, python-format msgid "objectclass %s not found" msgstr "" |